# -*- coding: utf-8 -*- # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . from rhodecode.tests import * from rhodecode.tests.fixture import Fixture from rhodecode.model.db import Repository from rhodecode.model.repo import RepoModel from rhodecode.model.meta import Session from rhodecode.model.scm import ScmModel fixture = Fixture() class TestSummaryController(TestController): def test_index(self): self.log_user() ID = Repository.get_by_repo_name(HG_REPO).repo_id response = self.app.get(url(controller='summary', action='index', repo_name=HG_REPO)) #repo type response.mustcontain( """""" ) # clone url... response.mustcontain('''id="clone_url" readonly="readonly" value="http://test_admin@localhost:80/%s"''' % HG_REPO) response.mustcontain('''id="clone_url_id" readonly="readonly" value="http://test_admin@localhost:80/_%s"''' % ID) def test_index_git(self): self.log_user() ID = Repository.get_by_repo_name(GIT_REPO).repo_id response = self.app.get(url(controller='summary', action='index', repo_name=GIT_REPO)) #repo type response.mustcontain( """""" ) # clone url... response.mustcontain('''id="clone_url" readonly="readonly" value="http://test_admin@localhost:80/%s"''' % GIT_REPO) response.mustcontain('''id="clone_url_id" readonly="readonly" value="http://test_admin@localhost:80/_%s"''' % ID) def test_index_by_id_hg(self): self.log_user() ID = Repository.get_by_repo_name(HG_REPO).repo_id response = self.app.get(url(controller='summary', action='index', repo_name='_%s' % ID)) #repo type response.mustcontain( """""" ) def test_index_by_repo_having_id_path_in_name_hg(self): self.log_user() fixture.create_repo(name='repo_1') response = self.app.get(url(controller='summary', action='index', repo_name='repo_1')) try: response.mustcontain("repo_1") finally: RepoModel().delete(Repository.get_by_repo_name('repo_1')) Session().commit() def test_index_by_id_git(self): self.log_user() ID = Repository.get_by_repo_name(GIT_REPO).repo_id response = self.app.get(url(controller='summary', action='index', repo_name='_%s' % ID)) #repo type response.mustcontain( """""" ) def _enable_stats(self, repo): r = Repository.get_by_repo_name(repo) r.enable_statistics = True Session().add(r) Session().commit() def test_index_trending(self): self.log_user() #codes stats self._enable_stats(HG_REPO) ScmModel().mark_for_invalidation(HG_REPO) response = self.app.get(url(controller='summary', action='index', repo_name=HG_REPO)) response.mustcontain( '[["py", {"count": 68, "desc": ["Python"]}], ' '["rst", {"count": 16, "desc": ["Rst"]}], ' '["css", {"count": 2, "desc": ["Css"]}], ' '["sh", {"count": 2, "desc": ["Bash"]}], ' '["yml", {"count": 1, "desc": ["Yaml"]}], ' '["makefile", {"count": 1, "desc": ["Makefile", "Makefile"]}], ' '["js", {"count": 1, "desc": ["Javascript"]}], ' '["cfg", {"count": 1, "desc": ["Ini"]}], ' '["ini", {"count": 1, "desc": ["Ini"]}], ' '["html", {"count": 1, "desc": ["EvoqueHtml", "Html"]}]];' ) def test_index_statistics(self): self.log_user() #codes stats self._enable_stats(HG_REPO) ScmModel().mark_for_invalidation(HG_REPO) response = self.app.get(url(controller='summary', action='statistics', repo_name=HG_REPO)) def test_index_trending_git(self): self.log_user() #codes stats self._enable_stats(GIT_REPO) ScmModel().mark_for_invalidation(GIT_REPO) response = self.app.get(url(controller='summary', action='index', repo_name=GIT_REPO)) response.mustcontain( '[["py", {"count": 68, "desc": ["Python"]}], ' '["rst", {"count": 16, "desc": ["Rst"]}], ' '["css", {"count": 2, "desc": ["Css"]}], ' '["sh", {"count": 2, "desc": ["Bash"]}], ' '["makefile", {"count": 1, "desc": ["Makefile", "Makefile"]}], ' '["js", {"count": 1, "desc": ["Javascript"]}], ' '["cfg", {"count": 1, "desc": ["Ini"]}], ' '["ini", {"count": 1, "desc": ["Ini"]}], ' '["html", {"count": 1, "desc": ["EvoqueHtml", "Html"]}], ' '["bat", {"count": 1, "desc": ["Batch"]}]];' ) def test_index_statistics_git(self): self.log_user() #codes stats self._enable_stats(GIT_REPO) ScmModel().mark_for_invalidation(GIT_REPO) response = self.app.get(url(controller='summary', action='statistics', repo_name=GIT_REPO))