Mercurial > kallithea
view rhodecode/tests/models/common.py @ 3882:2c5ceb546234 beta
renamed gists routing to proper plural names
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Mon, 20 May 2013 21:40:00 +0200 |
parents | 5067d6e826a5 |
children | ffd45b185016 |
line wrap: on
line source
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