Merge "give correct http error on getting non-existent policy"

This commit is contained in:
Jenkins 2016-09-09 08:15:30 +00:00 committed by Gerrit Code Review
commit 2d76f0ca8e
2 changed files with 14 additions and 8 deletions

View File

@ -390,10 +390,12 @@ class Runtime (object):
# Note(thread-safety): blocking function
def persistent_get_policy(self, id_):
# Note(thread-safety): blocking call
policy = db_policy_rules.get_policy(id_)
if not policy:
return
return policy.to_dict()
try:
policy = db_policy_rules.get_policy(id_)
return policy.to_dict()
except KeyError:
raise exception.NotFound(
'No policy found with name or id %s' % id_)
# Note(thread-safety): blocking function
def persistent_get_rule(self, id_, policy_name):

View File

@ -85,8 +85,10 @@ class TestPolicyModel(base.SqlTestCase):
self.assertEqual(expected_ret, ret)
def test_get_invalid_item(self):
self.assertRaises(KeyError, self.policy_model.get_item,
'invalid-id', {})
self.assertRaisesRegexp(webservice.DataModelException,
'^Not Found',
self.policy_model.get_item,
'invalid-id', {})
@mock.patch('oslo_utils.uuidutils.generate_uuid')
def test_add_item(self, patched_gen_uuid):
@ -157,8 +159,10 @@ class TestPolicyModel(base.SqlTestCase):
ret = self.policy_model.delete_item(policy_id, {})
self.assertEqual(expected_ret, ret)
self.assertRaises(KeyError, self.policy_model.get_item,
self.policy['id'], {})
self.assertRaisesRegexp(webservice.DataModelException,
'^Not Found',
self.policy_model.get_item,
self.policy['id'], {})
# check that deleting the policy also deletes the rules
self.assertRaises(webservice.DataModelException,