test_settings.py
60 lines
| 2.7 KiB
| text/x-python
|
PythonLexer
r547 | from rhodecode.tests import * | |||
r3219 | from rhodecode.model.db import UserRepoToPerm, Repository, User, Permission | |||
from rhodecode.model.meta import Session | ||||
def _get_permission_for_user(user, repo): | ||||
perm = UserRepoToPerm.query()\ | ||||
.filter(UserRepoToPerm.repository == | ||||
Repository.get_by_repo_name(repo))\ | ||||
.filter(UserRepoToPerm.user == User.get_by_username(user))\ | ||||
.all() | ||||
return perm | ||||
r547 | ||||
class TestSettingsController(TestController): | ||||
def test_index(self): | ||||
self.log_user() | ||||
response = self.app.get(url(controller='settings', action='index', | ||||
r688 | repo_name=HG_REPO)) | |||
r547 | # Test response... | |||
r3219 | ||||
def test_set_private_flag_sets_default_to_none(self): | ||||
self.log_user() | ||||
#initially repository perm should be read | ||||
perm = _get_permission_for_user(user='default', repo=HG_REPO) | ||||
self.assertTrue(len(perm), 1) | ||||
self.assertEqual(perm[0].permission.permission_name, 'repository.read') | ||||
self.assertEqual(Repository.get_by_repo_name(HG_REPO).private, False) | ||||
response = self.app.put(url('repo', repo_name=HG_REPO), | ||||
_get_repo_create_params(repo_private=1, | ||||
repo_name=HG_REPO, | ||||
user=TEST_USER_ADMIN_LOGIN)) | ||||
self.checkSessionFlash(response, | ||||
msg='Repository %s updated successfully' % (HG_REPO)) | ||||
self.assertEqual(Repository.get_by_repo_name(HG_REPO).private, True) | ||||
#now the repo default permission should be None | ||||
perm = _get_permission_for_user(user='default', repo=HG_REPO) | ||||
self.assertTrue(len(perm), 1) | ||||
self.assertEqual(perm[0].permission.permission_name, 'repository.none') | ||||
response = self.app.put(url('repo', repo_name=HG_REPO), | ||||
_get_repo_create_params(repo_private=False, | ||||
repo_name=HG_REPO, | ||||
user=TEST_USER_ADMIN_LOGIN)) | ||||
self.checkSessionFlash(response, | ||||
msg='Repository %s updated successfully' % (HG_REPO)) | ||||
self.assertEqual(Repository.get_by_repo_name(HG_REPO).private, False) | ||||
#we turn off private now the repo default permission should stay None | ||||
perm = _get_permission_for_user(user='default', repo=HG_REPO) | ||||
self.assertTrue(len(perm), 1) | ||||
self.assertEqual(perm[0].permission.permission_name, 'repository.none') | ||||
#update this permission back | ||||
perm[0].permission = Permission.get_by_key('repository.read') | ||||
Session().add(perm[0]) | ||||
Session().commit() | ||||