Files
@ ffd45b185016
Branch filter:
Location: kallithea/rhodecode/tests/functional/test_summary.py - annotation
ffd45b185016
6.5 KiB
text/x-python
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
This imports changes between changesets 21af6c4eab3d and 6177597791c2 in
RhodeCode's original repository, including only changes to Python files and HTML.
RhodeCode clearly licensed its changes to these files under GPLv3
in their /LICENSE file, which states the following:
The Python code and integrated HTML are licensed under the GPLv3 license.
(See:
https://code.rhodecode.com/rhodecode/files/v2.2.5/LICENSE
or
http://web.archive.org/web/20140512193334/https://code.rhodecode.com/rhodecode/files/f3b123159901f15426d18e3dc395e8369f70ebe0/LICENSE
for an online copy of that LICENSE file)
Conservancy reviewed these changes and confirmed that they can be licensed as
a whole to the Kallithea project under GPLv3-only.
While some of the contents committed herein are clearly licensed
GPLv3-or-later, on the whole we must assume the are GPLv3-only, since the
statement above from RhodeCode indicates that they intend GPLv3-only as their
license, per GPLv3§14 and other relevant sections of GPLv3.
This imports changes between changesets 21af6c4eab3d and 6177597791c2 in
RhodeCode's original repository, including only changes to Python files and HTML.
RhodeCode clearly licensed its changes to these files under GPLv3
in their /LICENSE file, which states the following:
The Python code and integrated HTML are licensed under the GPLv3 license.
(See:
https://code.rhodecode.com/rhodecode/files/v2.2.5/LICENSE
or
http://web.archive.org/web/20140512193334/https://code.rhodecode.com/rhodecode/files/f3b123159901f15426d18e3dc395e8369f70ebe0/LICENSE
for an online copy of that LICENSE file)
Conservancy reviewed these changes and confirmed that they can be licensed as
a whole to the Kallithea project under GPLv3-only.
While some of the contents committed herein are clearly licensed
GPLv3-or-later, on the whole we must assume the are GPLv3-only, since the
statement above from RhodeCode indicates that they intend GPLv3-only as their
license, per GPLv3§14 and other relevant sections of GPLv3.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 | ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 1e757ac98988 8a86836fad64 c334e972f459 1670ee0aded7 1670ee0aded7 6843cabe9925 1e757ac98988 8a86836fad64 8a86836fad64 a8c66e870bd0 1e757ac98988 1e757ac98988 1e757ac98988 1e757ac98988 a8c66e870bd0 9c0f5d558789 cf51bbfb120e a8c66e870bd0 8acbfa837180 8acbfa837180 b7adbd5456c2 ffd45b185016 b7adbd5456c2 ffd45b185016 b7adbd5456c2 ffd45b185016 b7adbd5456c2 8acbfa837180 8acbfa837180 f4ce9416cbd5 f4ce9416cbd5 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 51127b2efb33 402a96fcfa22 402a96fcfa22 ffd45b185016 402a96fcfa22 ffd45b185016 402a96fcfa22 ffd45b185016 402a96fcfa22 402a96fcfa22 402a96fcfa22 f4ce9416cbd5 f4ce9416cbd5 402a96fcfa22 402a96fcfa22 a8c66e870bd0 a8c66e870bd0 a8c66e870bd0 cf51bbfb120e a8c66e870bd0 a8c66e870bd0 a8c66e870bd0 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 51127b2efb33 1670ee0aded7 1670ee0aded7 8a86836fad64 1670ee0aded7 1670ee0aded7 1670ee0aded7 1670ee0aded7 1670ee0aded7 8a86836fad64 1670ee0aded7 1670ee0aded7 1670ee0aded7 1670ee0aded7 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 402a96fcfa22 ffd45b185016 ffd45b185016 c334e972f459 d7488551578e d7488551578e ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 ffd45b185016 | # -*- 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/>.
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(
"""<i class="icon-hg" """
)
#public/private
response.mustcontain(
"""<i class="icon-unlock-alt">"""
)
# 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(
"""<i class="icon-git" """
)
#public/private
response.mustcontain(
"""<i class="icon-unlock-alt">"""
)
# 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(
"""<i class="icon-hg" """
)
#public/private
response.mustcontain(
"""<i class="icon-unlock-alt">"""
)
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(
"""<i class="icon-git" """
)
#public/private
response.mustcontain(
"""<i class="icon-unlock-alt">"""
)
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))
|