keystone/tests/test_v3_policy.py

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, ref):
return self.assertValidListResponse(
resp,
'policies',
self.assertValidPolicy,
ref)
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, 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})