diff --git a/rhodecode/tests/functional/test_forks.py b/rhodecode/tests/functional/test_forks.py --- a/rhodecode/tests/functional/test_forks.py +++ b/rhodecode/tests/functional/test_forks.py @@ -1,9 +1,25 @@ from rhodecode.tests import * from rhodecode.model.db import Repository +from rhodecode.model.repo import RepoModel +from rhodecode.model.user import UserModel + class TestForksController(TestController): + def setUp(self): + self.username = u'forkuser' + self.password = u'qweqwe' + self.u1 = UserModel().create_or_update( + username=self.username, password=self.password, + email=u'fork_king@rhodecode.org', name=u'u1', lastname=u'u1' + ) + self.Session.commit() + + def tearDown(self): + self.Session.delete(self.u1) + self.Session.commit() + def test_index(self): self.log_user() repo_name = HG_REPO @@ -12,7 +28,6 @@ class TestForksController(TestController self.assertTrue("""There are no forks yet""" in response.body) - def test_index_with_fork(self): self.log_user() @@ -34,7 +49,6 @@ class TestForksController(TestController response = self.app.get(url(controller='forks', action='forks', repo_name=repo_name)) - self.assertTrue("""""" """vcs_test_hg_fork""" % fork_name in response.body) @@ -42,9 +56,6 @@ class TestForksController(TestController #remove this fork response = self.app.delete(url('repo', repo_name=fork_name)) - - - def test_z_fork_create(self): self.log_user() fork_name = HG_FORK @@ -71,11 +82,9 @@ class TestForksController(TestController self.assertEqual(fork_repo.repo_name, fork_name) self.assertEqual(fork_repo.fork.repo_name, repo_name) - #test if fork is visible in the list ? response = response.follow() - # check if fork is marked as fork # wait for cache to expire import time @@ -84,3 +93,41 @@ class TestForksController(TestController repo_name=fork_name)) self.assertTrue('Fork of %s' % repo_name in response.body) + + def test_zz_fork_permission_page(self): + usr = self.log_user(self.username, self.password)['user_id'] + repo_name = HG_REPO + + forks = self.Session.query(Repository)\ + .filter(Repository.fork_id != None)\ + .all() + self.assertEqual(1, len(forks)) + + # set read permissions for this + RepoModel().grant_user_permission(repo=forks[0], + user=usr, + perm='repository.read') + self.Session.commit() + + response = self.app.get(url(controller='forks', action='forks', + repo_name=repo_name)) + + response.mustcontain('