diff options
author | Marcin Kuzminski <marcin@python-works.com> | 2013-03-28 02:57:05 +0100 |
---|---|---|
committer | Marcin Kuzminski <marcin@python-works.com> | 2013-03-28 02:57:05 +0100 |
commit | d4cdb07f3bd8a91c7608fa4e159b0506e5573041 (patch) | |
tree | 5a30a61eac425a6aaccc2bdd4418ef5441206286 /rhodecode/tests | |
parent | b13e99104372e2b4f6f6093607e7e35d9e870ddf (diff) |
#749 and #516 Removed dupliciting of repo settings for rhodecode admins and repo admins
- repo admin now is allowed the same set of operations as the rhodecode admin
- single logic for forms/validations/permissions
- fixes #805 update external repo via webinterface
-
--HG--
branch : beta
extra : amend_source : 917c7d17eb73861cea0130dfe69d93cf6be893c0
Diffstat (limited to 'rhodecode/tests')
-rw-r--r-- | rhodecode/tests/functional/test_admin_repos.py | 59 | ||||
-rw-r--r-- | rhodecode/tests/functional/test_settings.py | 60 |
2 files changed, 51 insertions, 68 deletions
diff --git a/rhodecode/tests/functional/test_admin_repos.py b/rhodecode/tests/functional/test_admin_repos.py index 2b9256c7..c98e0f40 100644 --- a/rhodecode/tests/functional/test_admin_repos.py +++ b/rhodecode/tests/functional/test_admin_repos.py @@ -4,10 +4,21 @@ import os import urllib from rhodecode.lib import vcs -from rhodecode.model.db import Repository, RepoGroup +from rhodecode.model.db import Repository, RepoGroup, UserRepoToPerm, User,\ + Permission from rhodecode.tests import * from rhodecode.model.repos_group import ReposGroupModel from rhodecode.model.repo import RepoModel +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 class TestAdminReposController(TestController): @@ -200,13 +211,6 @@ class TestAdminReposController(TestController): except: self.fail('no repo %s in filesystem' % repo_name) - def test_new(self): - self.log_user() - response = self.app.get(url('new_repo')) - - def test_new_as_xml(self): - response = self.app.get(url('formatted_new_repo', format='xml')) - def test_update(self): response = self.app.put(url('repo', repo_name=HG_REPO)) @@ -328,3 +332,42 @@ class TestAdminReposController(TestController): def test_edit(self): response = self.app.get(url('edit_repo', repo_name=HG_REPO)) + + 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() diff --git a/rhodecode/tests/functional/test_settings.py b/rhodecode/tests/functional/test_settings.py deleted file mode 100644 index f19ee744..00000000 --- a/rhodecode/tests/functional/test_settings.py +++ /dev/null @@ -1,60 +0,0 @@ -from rhodecode.tests import * -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 - - -class TestSettingsController(TestController): - - def test_index(self): - self.log_user() - response = self.app.get(url(controller='settings', action='index', - repo_name=HG_REPO)) - # Test response... - - 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() |