test_summary.py
176 lines
| 6.5 KiB
| text/x-python
|
PythonLexer
Bradley M. Kuhn
|
r4116 | # -*- 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 <http://www.gnu.org/licenses/>. | ||||
r547 | from rhodecode.tests import * | |||
r3647 | from rhodecode.tests.fixture import Fixture | |||
r1080 | from rhodecode.model.db import Repository | |||
r2822 | from rhodecode.model.repo import RepoModel | |||
from rhodecode.model.meta import Session | ||||
r3693 | from rhodecode.model.scm import ScmModel | |||
r547 | ||||
r3647 | fixture = Fixture() | |||
r1813 | ||||
r547 | class TestSummaryController(TestController): | |||
def test_index(self): | ||||
self.log_user() | ||||
r1813 | ID = Repository.get_by_repo_name(HG_REPO).repo_id | |||
r1366 | response = self.app.get(url(controller='summary', | |||
r1818 | action='index', | |||
r1813 | repo_name=HG_REPO)) | |||
r688 | ||||
#repo type | ||||
r1895 | response.mustcontain( | |||
Bradley M. Kuhn
|
r4116 | """<i class="icon-hg" """ | ||
r1895 | ) | |||
Bradley M. Kuhn
|
r4116 | #public/private | ||
r1895 | response.mustcontain( | |||
Bradley M. Kuhn
|
r4116 | """<i class="icon-unlock-alt">""" | ||
r1895 | ) | |||
r688 | ||||
# clone url... | ||||
r3291 | 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) | ||||
r2451 | ||||
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)) | ||||
r782 | ||||
r2451 | #repo type | |||
response.mustcontain( | ||||
Bradley M. Kuhn
|
r4116 | """<i class="icon-git" """ | ||
r2451 | ) | |||
Bradley M. Kuhn
|
r4116 | #public/private | ||
r2451 | response.mustcontain( | |||
Bradley M. Kuhn
|
r4116 | """<i class="icon-unlock-alt">""" | ||
r2451 | ) | |||
# clone url... | ||||
r3291 | 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) | ||||
r2451 | ||||
def test_index_by_id_hg(self): | ||||
r1813 | self.log_user() | |||
ID = Repository.get_by_repo_name(HG_REPO).repo_id | ||||
response = self.app.get(url(controller='summary', | ||||
r1818 | action='index', | |||
r1813 | repo_name='_%s' % ID)) | |||
#repo type | ||||
Bradley M. Kuhn
|
r4116 | response.mustcontain( | ||
"""<i class="icon-hg" """ | ||||
) | ||||
#public/private | ||||
response.mustcontain( | ||||
"""<i class="icon-unlock-alt">""" | ||||
) | ||||
r782 | ||||
r2822 | def test_index_by_repo_having_id_path_in_name_hg(self): | |||
self.log_user() | ||||
r3647 | fixture.create_repo(name='repo_1') | |||
r2822 | response = self.app.get(url(controller='summary', | |||
action='index', | ||||
repo_name='repo_1')) | ||||
try: | ||||
r3647 | response.mustcontain("repo_1") | |||
r2822 | finally: | |||
RepoModel().delete(Repository.get_by_repo_name('repo_1')) | ||||
Session().commit() | ||||
r2451 | 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 | ||||
Bradley M. Kuhn
|
r4116 | response.mustcontain( | ||
"""<i class="icon-git" """ | ||||
) | ||||
#public/private | ||||
response.mustcontain( | ||||
"""<i class="icon-unlock-alt">""" | ||||
) | ||||
r2451 | ||||
Bradley M. Kuhn
|
r4116 | def _enable_stats(self, repo): | ||
r = Repository.get_by_repo_name(repo) | ||||
r1080 | r.enable_statistics = True | |||
r3797 | Session().add(r) | |||
Session().commit() | ||||
Bradley M. Kuhn
|
r4116 | |||
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)) | ||||