From e064a4ea750a6237dabf03202b1dcb6fa435c7f6 Mon Sep 17 00:00:00 2001 From: Unmesh Gurjar Date: Tue, 27 Mar 2012 10:43:02 +0530 Subject: Added img metadata validation. Fixes bug 962117. 1. Added validation for image metadata. 2. Renamed the method 'check_img_metadata_quota_limit' to 'check_img_metadata_quota_limit' since it also validates the image metadata. 3. Added unit test cases. Change-Id: I0e9dad97c03070363d14977897701e146870e41a --- nova/tests/api/openstack/test_common.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'nova/tests') diff --git a/nova/tests/api/openstack/test_common.py b/nova/tests/api/openstack/test_common.py index f36a530c1..5e1e6e0ba 100644 --- a/nova/tests/api/openstack/test_common.py +++ b/nova/tests/api/openstack/test_common.py @@ -28,6 +28,7 @@ from nova import exception from nova import test from nova.api.openstack import common from nova.api.openstack import xmlutil +from nova.tests import utils as test_utils NS = "{http://docs.openstack.org/compute/api/v1.1}" @@ -328,6 +329,34 @@ class MiscFunctionsTest(test.TestCase): else: self.fail("webob.exc.HTTPConflict was not raised") + def test_check_img_metadata_properties_quota_valid_metadata(self): + ctxt = test_utils.get_test_admin_context() + metadata1 = {"key": "value"} + actual = common.check_img_metadata_properties_quota(ctxt, metadata1) + self.assertEqual(actual, None) + + metadata2 = {"key": "v" * 260} + actual = common.check_img_metadata_properties_quota(ctxt, metadata2) + self.assertEqual(actual, None) + + metadata3 = {"key": ""} + actual = common.check_img_metadata_properties_quota(ctxt, metadata3) + self.assertEqual(actual, None) + + def test_check_img_metadata_properties_quota_inv_metadata(self): + ctxt = test_utils.get_test_admin_context() + metadata1 = {"a" * 260: "value"} + self.assertRaises(webob.exc.HTTPBadRequest, + common.check_img_metadata_properties_quota, ctxt, metadata1) + + metadata2 = {"": "value"} + self.assertRaises(webob.exc.HTTPBadRequest, + common.check_img_metadata_properties_quota, ctxt, metadata2) + + metadata3 = "invalid metadata" + self.assertRaises(webob.exc.HTTPBadRequest, + common.check_img_metadata_properties_quota, ctxt, metadata3) + class MetadataXMLDeserializationTest(test.TestCase): -- cgit