Mercurial > kallithea
view kallithea/tests/functional/test_admin_user_groups.py @ 7811:0a277465fddf
scripts: initial run of import cleanup using isort
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Wed, 07 Aug 2019 00:25:02 +0200 |
parents | 09100b3b8f42 |
children | e527cc2ce8dc |
line wrap: on
line source
# -*- coding: utf-8 -*- from kallithea.model.db import Permission, UserGroup, UserGroupToPerm from kallithea.model.meta import Session from kallithea.tests.base import * TEST_USER_GROUP = u'admins_test' class TestAdminUsersGroupsController(TestController): def test_index(self): self.log_user() response = self.app.get(url('users_groups')) # Test response... def test_create(self): self.log_user() users_group_name = TEST_USER_GROUP response = self.app.post(url('users_groups'), {'users_group_name': users_group_name, 'user_group_description': u'DESC', 'active': True, '_session_csrf_secret_token': self.session_csrf_secret_token()}) response.follow() self.checkSessionFlash(response, 'Created user group <a href="/_admin/user_groups/') self.checkSessionFlash(response, '/edit">%s</a>' % TEST_USER_GROUP) def test_new(self): response = self.app.get(url('new_users_group')) def test_update(self): response = self.app.post(url('update_users_group', id=1), status=403) def test_update_browser_fakeout(self): response = self.app.post(url('update_users_group', id=1), params=dict(_session_csrf_secret_token=self.session_csrf_secret_token())) def test_delete(self): self.log_user() users_group_name = TEST_USER_GROUP + 'another' response = self.app.post(url('users_groups'), {'users_group_name': users_group_name, 'user_group_description': u'DESC', 'active': True, '_session_csrf_secret_token': self.session_csrf_secret_token()}) response.follow() self.checkSessionFlash(response, 'Created user group ') gr = Session().query(UserGroup) \ .filter(UserGroup.users_group_name == users_group_name).one() response = self.app.post(url('delete_users_group', id=gr.users_group_id), params={'_session_csrf_secret_token': self.session_csrf_secret_token()}) gr = Session().query(UserGroup) \ .filter(UserGroup.users_group_name == users_group_name).scalar() assert gr is None def test_default_perms_enable_repository_read_on_group(self): self.log_user() users_group_name = TEST_USER_GROUP + 'another2' response = self.app.post(url('users_groups'), {'users_group_name': users_group_name, 'user_group_description': u'DESC', 'active': True, '_session_csrf_secret_token': self.session_csrf_secret_token()}) response.follow() ug = UserGroup.get_by_group_name(users_group_name) self.checkSessionFlash(response, 'Created user group ') ## ENABLE REPO CREATE ON A GROUP response = self.app.post(url('edit_user_group_default_perms_update', id=ug.users_group_id), {'create_repo_perm': True, '_session_csrf_secret_token': self.session_csrf_secret_token()}) response.follow() ug = UserGroup.get_by_group_name(users_group_name) p = Permission.get_by_key('hg.create.repository') p2 = Permission.get_by_key('hg.usergroup.create.false') p3 = Permission.get_by_key('hg.fork.none') # check if user has this perms, they should be here since # defaults are on perms = UserGroupToPerm.query() \ .filter(UserGroupToPerm.users_group == ug).all() assert sorted([[x.users_group_id, x.permission_id, ] for x in perms]) == sorted([[ug.users_group_id, p.permission_id], [ug.users_group_id, p2.permission_id], [ug.users_group_id, p3.permission_id]]) ## DISABLE REPO CREATE ON A GROUP response = self.app.post( url('edit_user_group_default_perms_update', id=ug.users_group_id), params={'_session_csrf_secret_token': self.session_csrf_secret_token()}) response.follow() ug = UserGroup.get_by_group_name(users_group_name) p = Permission.get_by_key('hg.create.none') p2 = Permission.get_by_key('hg.usergroup.create.false') p3 = Permission.get_by_key('hg.fork.none') # check if user has this perms, they should be here since # defaults are on perms = UserGroupToPerm.query() \ .filter(UserGroupToPerm.users_group == ug).all() assert sorted([[x.users_group_id, x.permission_id, ] for x in perms]) == sorted([[ug.users_group_id, p.permission_id], [ug.users_group_id, p2.permission_id], [ug.users_group_id, p3.permission_id]]) # DELETE ! ug = UserGroup.get_by_group_name(users_group_name) ugid = ug.users_group_id response = self.app.post(url('delete_users_group', id=ug.users_group_id), params={'_session_csrf_secret_token': self.session_csrf_secret_token()}) response = response.follow() gr = Session().query(UserGroup) \ .filter(UserGroup.users_group_name == users_group_name).scalar() assert gr is None p = Permission.get_by_key('hg.create.repository') perms = UserGroupToPerm.query() \ .filter(UserGroupToPerm.users_group_id == ugid).all() perms = [[x.users_group_id, x.permission_id, ] for x in perms] assert perms == [] def test_default_perms_enable_repository_fork_on_group(self): self.log_user() users_group_name = TEST_USER_GROUP + 'another2' response = self.app.post(url('users_groups'), {'users_group_name': users_group_name, 'user_group_description': u'DESC', 'active': True, '_session_csrf_secret_token': self.session_csrf_secret_token()}) response.follow() ug = UserGroup.get_by_group_name(users_group_name) self.checkSessionFlash(response, 'Created user group ') ## ENABLE REPO CREATE ON A GROUP response = self.app.post(url('edit_user_group_default_perms_update', id=ug.users_group_id), {'fork_repo_perm': True, '_session_csrf_secret_token': self.session_csrf_secret_token()}) response.follow() ug = UserGroup.get_by_group_name(users_group_name) p = Permission.get_by_key('hg.create.none') p2 = Permission.get_by_key('hg.usergroup.create.false') p3 = Permission.get_by_key('hg.fork.repository') # check if user has this perms, they should be here since # defaults are on perms = UserGroupToPerm.query() \ .filter(UserGroupToPerm.users_group == ug).all() assert sorted([[x.users_group_id, x.permission_id, ] for x in perms]) == sorted([[ug.users_group_id, p.permission_id], [ug.users_group_id, p2.permission_id], [ug.users_group_id, p3.permission_id]]) ## DISABLE REPO CREATE ON A GROUP response = self.app.post(url('edit_user_group_default_perms_update', id=ug.users_group_id), params={'_session_csrf_secret_token': self.session_csrf_secret_token()}) response.follow() ug = UserGroup.get_by_group_name(users_group_name) p = Permission.get_by_key('hg.create.none') p2 = Permission.get_by_key('hg.usergroup.create.false') p3 = Permission.get_by_key('hg.fork.none') # check if user has this perms, they should be here since # defaults are on perms = UserGroupToPerm.query() \ .filter(UserGroupToPerm.users_group == ug).all() assert sorted([[x.users_group_id, x.permission_id, ] for x in perms]) == sorted([[ug.users_group_id, p.permission_id], [ug.users_group_id, p2.permission_id], [ug.users_group_id, p3.permission_id]]) # DELETE ! ug = UserGroup.get_by_group_name(users_group_name) ugid = ug.users_group_id response = self.app.post(url('delete_users_group', id=ug.users_group_id), params={'_session_csrf_secret_token': self.session_csrf_secret_token()}) response = response.follow() gr = Session().query(UserGroup) \ .filter(UserGroup.users_group_name == users_group_name).scalar() assert gr is None p = Permission.get_by_key('hg.fork.repository') perms = UserGroupToPerm.query() \ .filter(UserGroupToPerm.users_group_id == ugid).all() perms = [[x.users_group_id, x.permission_id, ] for x in perms] assert perms == [] def test_delete_browser_fakeout(self): response = self.app.post(url('delete_users_group', id=1), params=dict(_session_csrf_secret_token=self.session_csrf_secret_token()))