Files
@ 82b2d1a21ae3
Branch filter:
Location: kallithea/rhodecode/tests/functional/test_forks.py - annotation
82b2d1a21ae3
6.7 KiB
text/x-python
use show_id also in lightweight changelog
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 | f9559677c953 f9559677c953 f9559677c953 162bf5c978f8 162bf5c978f8 d2d35cf2b351 162bf5c978f8 f9559677c953 f9559677c953 f9559677c953 162bf5c978f8 162bf5c978f8 162bf5c978f8 162bf5c978f8 162bf5c978f8 388843a3a3c0 162bf5c978f8 d2d35cf2b351 162bf5c978f8 162bf5c978f8 d2d35cf2b351 d2d35cf2b351 162bf5c978f8 f9559677c953 f9559677c953 f9559677c953 f9559677c953 f9559677c953 f9559677c953 f9559677c953 f9559677c953 d2d35cf2b351 d2d35cf2b351 d2d35cf2b351 d2d35cf2b351 d2d35cf2b351 d2d35cf2b351 d2d35cf2b351 d2d35cf2b351 d2d35cf2b351 d2d35cf2b351 d2d35cf2b351 d2d35cf2b351 d2d35cf2b351 d2d35cf2b351 9492ab68331f f9559677c953 f9559677c953 f9559677c953 f9559677c953 f9559677c953 f9559677c953 64e91067b996 64e91067b996 f9559677c953 f9559677c953 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f f9559677c953 f9559677c953 f9559677c953 f9559677c953 9492ab68331f f4ce9416cbd5 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f 9492ab68331f f4ce9416cbd5 9492ab68331f f9559677c953 f9559677c953 f9559677c953 f9559677c953 64e91067b996 64e91067b996 64e91067b996 64e91067b996 64e91067b996 64e91067b996 64e91067b996 64e91067b996 7abbb77b02d0 64e91067b996 64e91067b996 64e91067b996 64e91067b996 9492ab68331f 9492ab68331f 64e91067b996 64e91067b996 9492ab68331f 7abbb77b02d0 7abbb77b02d0 64e91067b996 64e91067b996 d2d35cf2b351 64e91067b996 64e91067b996 64e91067b996 64e91067b996 64e91067b996 64e91067b996 64e91067b996 64e91067b996 64e91067b996 64e91067b996 64e91067b996 64e91067b996 162bf5c978f8 162bf5c978f8 162bf5c978f8 162bf5c978f8 162bf5c978f8 d2d35cf2b351 162bf5c978f8 162bf5c978f8 162bf5c978f8 162bf5c978f8 162bf5c978f8 162bf5c978f8 162bf5c978f8 162bf5c978f8 d2d35cf2b351 162bf5c978f8 162bf5c978f8 162bf5c978f8 162bf5c978f8 162bf5c978f8 162bf5c978f8 162bf5c978f8 162bf5c978f8 162bf5c978f8 162bf5c978f8 d2d35cf2b351 162bf5c978f8 162bf5c978f8 162bf5c978f8 162bf5c978f8 162bf5c978f8 162bf5c978f8 162bf5c978f8 d2d35cf2b351 162bf5c978f8 162bf5c978f8 162bf5c978f8 162bf5c978f8 | from rhodecode.tests import *
from rhodecode.model.db import Repository
from rhodecode.model.repo import RepoModel
from rhodecode.model.user import UserModel
from rhodecode.model.meta import Session
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', firstname=u'u1', lastname=u'u1'
)
Session().commit()
def tearDown(self):
Session().delete(self.u1)
Session().commit()
def test_index(self):
self.log_user()
repo_name = HG_REPO
response = self.app.get(url(controller='forks', action='forks',
repo_name=repo_name))
self.assertTrue("""There are no forks yet""" in response.body)
def test_no_permissions_to_fork(self):
usr = self.log_user(TEST_USER_REGULAR_LOGIN,
TEST_USER_REGULAR_PASS)['user_id']
user_model = UserModel()
user_model.revoke_perm(usr, 'hg.fork.repository')
user_model.grant_perm(usr, 'hg.fork.none')
u = UserModel().get(usr)
u.inherit_default_permissions = False
Session().commit()
# try create a fork
repo_name = HG_REPO
self.app.post(url(controller='forks', action='fork_create',
repo_name=repo_name), {}, status=403)
def test_index_with_fork_hg(self):
self.log_user()
# create a fork
fork_name = HG_FORK
description = 'fork of vcs test'
repo_name = HG_REPO
org_repo = Repository.get_by_repo_name(repo_name)
response = self.app.post(url(controller='forks',
action='fork_create',
repo_name=repo_name),
{'repo_name': fork_name,
'repo_group': '',
'fork_parent_id': org_repo.repo_id,
'repo_type': 'hg',
'description': description,
'private': 'False',
'landing_rev': 'tip'})
response = self.app.get(url(controller='forks', action='forks',
repo_name=repo_name))
response.mustcontain(
"""<a href="/%s">%s</a>""" % (fork_name, fork_name)
)
#remove this fork
response = self.app.delete(url('repo', repo_name=fork_name))
def test_index_with_fork_git(self):
self.log_user()
# create a fork
fork_name = GIT_FORK
description = 'fork of vcs test'
repo_name = GIT_REPO
org_repo = Repository.get_by_repo_name(repo_name)
response = self.app.post(url(controller='forks',
action='fork_create',
repo_name=repo_name),
{'repo_name': fork_name,
'repo_group': '',
'fork_parent_id': org_repo.repo_id,
'repo_type': 'git',
'description': description,
'private': 'False',
'landing_rev': 'tip'})
response = self.app.get(url(controller='forks', action='forks',
repo_name=repo_name))
response.mustcontain(
"""<a href="/%s">%s</a>""" % (fork_name, fork_name)
)
#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
description = 'fork of vcs test'
repo_name = HG_REPO
org_repo = Repository.get_by_repo_name(repo_name)
response = self.app.post(url(controller='forks', action='fork_create',
repo_name=repo_name),
{'repo_name': fork_name,
'repo_group':'',
'fork_parent_id':org_repo.repo_id,
'repo_type':'hg',
'description':description,
'private':'False',
'landing_rev': 'tip'})
#test if we have a message that fork is ok
self.checkSessionFlash(response,
'forked repository %s as <a href="/%s">%s</a>'
% (repo_name, fork_name, fork_name))
#test if the fork was created in the database
fork_repo = Session().query(Repository)\
.filter(Repository.repo_name == fork_name).one()
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()
response = self.app.get(url(controller='summary', action='index',
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 = 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')
Session().commit()
response = self.app.get(url(controller='forks', action='forks',
repo_name=repo_name))
response.mustcontain('<div style="padding:5px 3px 3px 42px;">fork of vcs test</div>')
def test_zzz_fork_permission_page(self):
usr = self.log_user(self.username, self.password)['user_id']
repo_name = HG_REPO
forks = Session().query(Repository)\
.filter(Repository.fork_id != None)\
.all()
self.assertEqual(1, len(forks))
# set none
RepoModel().grant_user_permission(repo=forks[0],
user=usr, perm='repository.none')
Session().commit()
# fork shouldn't be there
response = self.app.get(url(controller='forks', action='forks',
repo_name=repo_name))
response.mustcontain('There are no forks yet')
|