Files
@ af049a957506
Branch filter:
Location: kallithea/rhodecode/tests/functional/test_home.py - annotation
af049a957506
4.1 KiB
text/x-python
fixed default permissions population during upgrades
- it often happen that introducing new permission
caused default permission to reset it's state to installation
default.
new version makes sure that only missing permissions are
created while leaving old defaults
- it often happen that introducing new permission
caused default permission to reset it's state to installation
default.
new version makes sure that only missing permissions are
created while leaving old defaults
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 | a2eaa0054430 7486da5f0628 8a86836fad64 a2eaa0054430 8a86836fad64 87258a137018 87258a137018 7486da5f0628 ef0613584ced 8a86836fad64 8a86836fad64 8a86836fad64 7486da5f0628 7486da5f0628 7486da5f0628 7486da5f0628 7486da5f0628 7486da5f0628 cbc63abe7d59 f4ce9416cbd5 0765fd5bf668 ef0613584ced 605707b50d7c ef0613584ced ec6354949623 ec6354949623 ef0613584ced ef0613584ced ef0613584ced f467c75544af f467c75544af f467c75544af f467c75544af a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 a2eaa0054430 dbb311201ce3 87258a137018 87258a137018 87258a137018 87258a137018 87258a137018 dbb311201ce3 dbb311201ce3 87258a137018 dbb311201ce3 dbb311201ce3 dbb311201ce3 8a86836fad64 8a86836fad64 dbb311201ce3 87258a137018 87258a137018 87258a137018 87258a137018 8a86836fad64 8a86836fad64 87258a137018 87258a137018 87258a137018 8a86836fad64 87258a137018 87258a137018 87258a137018 87258a137018 87258a137018 87258a137018 87258a137018 87258a137018 8a86836fad64 8a86836fad64 87258a137018 87258a137018 87258a137018 87258a137018 87258a137018 87258a137018 87258a137018 87258a137018 87258a137018 | import time
from rhodecode.tests import *
from rhodecode.tests.fixture import Fixture
from rhodecode.model.meta import Session
from rhodecode.model.db import User, Repository
from rhodecode.model.repo import RepoModel
from rhodecode.model.repos_group import ReposGroupModel
fixture = Fixture()
class TestHomeController(TestController):
def test_index(self):
self.log_user()
response = self.app.get(url(controller='home', action='index'))
#if global permission is set
response.mustcontain('Add repository')
response.mustcontain('href="/%s"' % HG_REPO)
response.mustcontain("""<img class="icon" title="Mercurial repository" """
"""alt="Mercurial repository" src="/images/icons/hg"""
"""icon.png"/>""")
response.mustcontain("""<img class="icon" title="Public repository" """
"""alt="Public repository" src="/images/icons/lock_"""
"""open.png"/>""")
response.mustcontain(
"""<a title="Marcin Kuzminski &lt;marcin@python-works.com&gt;:\n
merge" class="tooltip" href="/vcs_test_hg/changeset/27cd5cce30c96924232"""
"""dffcd24178a07ffeb5dfc">r173:27cd5cce30c9</a>"""
)
def test_repo_summary_with_anonymous_access_disabled(self):
anon = User.get_by_username('default')
anon.active = False
Session().add(anon)
Session().commit()
time.sleep(1.5) # must sleep for cache (1s to expire)
try:
response = self.app.get(url(controller='summary',
action='index', repo_name=HG_REPO),
status=302)
assert 'login' in response.location
finally:
anon = User.get_by_username('default')
anon.active = True
Session().add(anon)
Session().commit()
def test_index_with_anonymous_access_disabled(self):
anon = User.get_by_username('default')
anon.active = False
Session().add(anon)
Session().commit()
time.sleep(1.5) # must sleep for cache (1s to expire)
try:
response = self.app.get(url(controller='home', action='index'),
status=302)
assert 'login' in response.location
finally:
anon = User.get_by_username('default')
anon.active = True
Session().add(anon)
Session().commit()
def _set_l_dash(self, set_to):
self.app.post(url('admin_setting', setting_id='visual'),
params=dict(_method='put',
rhodecode_lightweight_dashboard=set_to,))
def test_index_with_lightweight_dashboard(self):
self.log_user()
self._set_l_dash(True)
try:
response = self.app.get(url(controller='home', action='index'))
response.mustcontain("""var data = {"totalRecords": %s"""
% len(Repository.getAll()))
finally:
self._set_l_dash(False)
def test_index_page_on_groups(self):
self.log_user()
gr = fixture.create_group('gr1')
fixture.create_repo(name='gr1/repo_in_group', repos_group=gr)
response = self.app.get(url('repos_group_home', group_name='gr1'))
try:
response.mustcontain("gr1/repo_in_group")
finally:
RepoModel().delete('gr1/repo_in_group')
ReposGroupModel().delete(repos_group='gr1', force_delete=True)
Session().commit()
def test_index_page_on_groups_with_lightweight_dashboard(self):
self.log_user()
self._set_l_dash(True)
fixture.create_repo(name='gr1/repo_in_group',
repos_group=fixture.create_group('gr1'))
response = self.app.get(url('repos_group_home', group_name='gr1'))
try:
response.mustcontain("""gr1/repo_in_group""")
finally:
self._set_l_dash(False)
RepoModel().delete('gr1/repo_in_group')
ReposGroupModel().delete(repos_group='gr1', force_delete=True)
Session().commit()
|