1573973941
- Adds a self-relational link to both individual API entities and collections. - Adds null previous/next links to collections to support pagination in the future. - Temporarily disables pagination (fixes bug 1079661), as the client doesn't currently support or expect it. We probably need to return all results by default unless the client requests a limited resultset anyway. - Expands test coverage for granting roles to users & groups in projects & domains. Change-Id: Ib5d6d39f5e1eb673c3285ef0b98603c5d375de75
79 lines
2.3 KiB
Python
79 lines
2.3 KiB
Python
import uuid
|
|
|
|
import test_v3
|
|
|
|
|
|
class PolicyTestCase(test_v3.RestfulTestCase):
|
|
"""Test policy CRUD"""
|
|
|
|
def setUp(self):
|
|
super(PolicyTestCase, self).setUp()
|
|
self.policy_id = uuid.uuid4().hex
|
|
self.policy = self.new_policy_ref()
|
|
self.policy['id'] = self.policy_id
|
|
self.policy_api.create_policy(
|
|
self.policy_id,
|
|
self.policy.copy())
|
|
|
|
# policy validation
|
|
|
|
def assertValidPolicyListResponse(self, resp, **kwargs):
|
|
return self.assertValidListResponse(
|
|
resp,
|
|
'policies',
|
|
self.assertValidPolicy,
|
|
**kwargs)
|
|
|
|
def assertValidPolicyResponse(self, resp, ref):
|
|
return self.assertValidResponse(
|
|
resp,
|
|
'policy',
|
|
self.assertValidPolicy,
|
|
ref)
|
|
|
|
def assertValidPolicy(self, entity, ref=None):
|
|
self.assertIsNotNone(entity.get('blob'))
|
|
self.assertIsNotNone(entity.get('type'))
|
|
if ref:
|
|
self.assertEqual(ref['blob'], entity['blob'])
|
|
self.assertEqual(ref['type'], entity['type'])
|
|
return entity
|
|
|
|
# policy crud tests
|
|
|
|
def test_create_policy(self):
|
|
"""POST /policies"""
|
|
ref = self.new_policy_ref()
|
|
r = self.post(
|
|
'/policies',
|
|
body={'policy': ref})
|
|
return self.assertValidPolicyResponse(r, ref)
|
|
|
|
def test_list_policies(self):
|
|
"""GET /policies"""
|
|
r = self.get('/policies')
|
|
self.assertValidPolicyListResponse(r, ref=self.policy)
|
|
|
|
def test_get_policy(self):
|
|
"""GET /policies/{policy_id}"""
|
|
r = self.get(
|
|
'/policies/%(policy_id)s' % {
|
|
'policy_id': self.policy_id})
|
|
self.assertValidPolicyResponse(r, self.policy)
|
|
|
|
def test_update_policy(self):
|
|
"""PATCH /policies/{policy_id}"""
|
|
policy = self.new_policy_ref()
|
|
policy['id'] = self.policy_id
|
|
r = self.patch(
|
|
'/policies/%(policy_id)s' % {
|
|
'policy_id': self.policy_id},
|
|
body={'policy': policy})
|
|
self.assertValidPolicyResponse(r, policy)
|
|
|
|
def test_delete_policy(self):
|
|
"""DELETE /policies/{policy_id}"""
|
|
self.delete(
|
|
'/policies/%(policy_id)s' % {
|
|
'policy_id': self.policy_id})
|