def test_get_your_permissions(self): rest = _RestProxyForTest() permissions = Permissions(rest) rest.expect_get('/user_permission/other_user?recursive=true', 200, {'': [{'right': 'ADMIN', 'target_type': 'PROJECT', 'target_id': 'id'}]}) ps = permissions.get_my_permissions(user_superuser_only='other_user') self.assertEqual(ps, {'': [Permission('ADMIN', 'PROJECT', 'id')]})
def test_get_group_permissions(self): rest = _RestProxyForTest() permissions = Permissions(rest) rest.expect_get('/group_permission/g1?recursive=true', 200, {'g1': [{'right': 'ADMIN', 'target_type': 'PROJECT', 'target_id': 'id'}], 'g2': [{'right': 'READ', 'target_type': 'GROUP', 'target_id': 'id2'}]}) ps = permissions.get_group_permissions('g1') self.assertEqual(ps, {'g1': [Permission('ADMIN', 'PROJECT', 'id')], 'g2': [Permission('READ', 'GROUP', 'id2')]})
def test_revoke_group_permission(self): rest = _RestProxyForTest() permissions = Permissions(rest) rest.expect_delete( '/group_permission/g1?right=ADMIN&target_type=PROJECT&target_id=id', 204) p1 = Permission('ADMIN', 'PROJECT', 'id') permissions.revoke_group_permission('g1', p1) rest.expect_delete( '/group_permission/g1?right=ADMIN&target_type=PROJECT&target_id=id', 200) with self.assertRaises(RuntimeError): permissions.revoke_group_permission('g1', p1)
def test_grant_group_permission(self): rest = _RestProxyForTest() permissions = Permissions(rest) expected_data = {} def check_input(data_dict): self.assertEqual(expected_data, data_dict) return True expected_data = {'right': 'ADMIN', 'target_type': 'PROJECT', 'target_id': 'id'} rest.expect_post('/group_permission/g1', check_input, 200, expected_data) p1 = Permission('ADMIN', 'PROJECT', 'id') permissions.grant_group_permission('g1', p1) rest.expect_post('/group_permission/g1', check_input, 404, {}) with self.assertRaises(RuntimeError): permissions.grant_group_permission('g1', p1)