Files
@ d7488551578e
Branch filter:
Location: kallithea/rhodecode/tests/models/common.py - annotation
d7488551578e
3.4 KiB
text/x-python
synced vcs with upstream
- moved subprocessio module to VCS
- many small changes to make embedded vcs as similar to to external lib
- use only absolute imports
- patch vcs config during load pylons env
- moved subprocessio module to VCS
- many small changes to make embedded vcs as similar to to external lib
- use only absolute imports
- patch vcs config during load pylons env
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 | c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 8a86836fad64 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 8a86836fad64 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 dd0ee9119aa9 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 8a86836fad64 8a86836fad64 8a86836fad64 8a86836fad64 8a86836fad64 8a86836fad64 8a86836fad64 8a86836fad64 8a86836fad64 8a86836fad64 8a86836fad64 8a86836fad64 8a86836fad64 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 c0cc8f8a71b0 | import os
import unittest
import functools
from rhodecode.tests import *
from rhodecode.tests.fixture import Fixture
from rhodecode.model.repos_group import ReposGroupModel
from rhodecode.model.repo import RepoModel
from rhodecode.model.db import RepoGroup, Repository, User
from rhodecode.model.user import UserModel
from rhodecode.lib.auth import AuthUser
from rhodecode.model.meta import Session
fixture = Fixture()
def _destroy_project_tree(test_u1_id):
Session.remove()
repos_group = RepoGroup.get_by_group_name(group_name='g0')
for el in reversed(repos_group.recursive_groups_and_repos()):
if isinstance(el, Repository):
RepoModel().delete(el)
elif isinstance(el, RepoGroup):
ReposGroupModel().delete(el, force_delete=True)
u = User.get(test_u1_id)
Session().delete(u)
Session().commit()
def _create_project_tree():
"""
Creates a tree of groups and repositories to test permissions
structure
[g0] - group `g0` with 3 subgroups
|
|__[g0_1] group g0_1 with 2 groups 0 repos
| |
| |__[g0_1_1] group g0_1_1 with 1 group 2 repos
| | |__<g0/g0_1/g0_1_1/g0_1_1_r1>
| | |__<g0/g0_1/g0_1_1/g0_1_1_r2>
| |__<g0/g0_1/g0_1_r1>
|
|__[g0_2] 2 repos
| |
| |__<g0/g0_2/g0_2_r1>
| |__<g0/g0_2/g0_2_r2>
|
|__[g0_3] 1 repo
|
|_<g0/g0_3/g0_3_r1>
|_<g0/g0_3/g0_3_r2_private>
"""
test_u1 = UserModel().create_or_update(
username=u'test_u1', password=u'qweqwe',
email=u'test_u1@rhodecode.org', firstname=u'test_u1', lastname=u'test_u1'
)
g0 = fixture.create_group('g0')
g0_1 = fixture.create_group('g0_1', group_parent_id=g0)
g0_1_1 = fixture.create_group('g0_1_1', group_parent_id=g0_1)
g0_1_1_r1 = fixture.create_repo('g0/g0_1/g0_1_1/g0_1_1_r1', repos_group=g0_1_1)
g0_1_1_r2 = fixture.create_repo('g0/g0_1/g0_1_1/g0_1_1_r2', repos_group=g0_1_1)
g0_1_r1 = fixture.create_repo('g0/g0_1/g0_1_r1', repos_group=g0_1)
g0_2 = fixture.create_group('g0_2', group_parent_id=g0)
g0_2_r1 = fixture.create_repo('g0/g0_2/g0_2_r1', repos_group=g0_2)
g0_2_r2 = fixture.create_repo('g0/g0_2/g0_2_r2', repos_group=g0_2)
g0_3 = fixture.create_group('g0_3', group_parent_id=g0)
g0_3_r1 = fixture.create_repo('g0/g0_3/g0_3_r1', repos_group=g0_3)
g0_3_r2_private = fixture.create_repo('g0/g0_3/g0_3_r1_private',
repos_group=g0_3, repo_private=True)
return test_u1
def expected_count(group_name, objects=False):
repos_group = RepoGroup.get_by_group_name(group_name=group_name)
objs = repos_group.recursive_groups_and_repos()
if objects:
return objs
return len(objs)
def _check_expected_count(items, repo_items, expected):
should_be = len(items + repo_items)
there_are = len(expected)
assert should_be == there_are, ('%s != %s' % ((items + repo_items), expected))
def check_tree_perms(obj_name, repo_perm, prefix, expected_perm):
assert repo_perm == expected_perm, ('obj:`%s` got perm:`%s` should:`%s`'
% (obj_name, repo_perm, expected_perm))
def _get_perms(filter_='', recursive=True, key=None, test_u1_id=None):
test_u1 = AuthUser(user_id=test_u1_id)
for k, v in test_u1.permissions[key].items():
if recursive and k.startswith(filter_):
yield k, v
elif not recursive:
if k == filter_:
yield k, v
|