From bb537a081dbc75cb99b9d0b6970475db262e7068 Mon Sep 17 00:00:00 2001 From: vinkesh banka Date: Fri, 5 Aug 2011 12:35:04 +0530 Subject: [PATCH] Deepak/Vinkesh | Fixed show action in extension controller to return 404, added example to include namespace in a request extension --- quantum/common/extensions.py | 5 ++++- tests/unit/test_extensions.py | 10 ++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/quantum/common/extensions.py b/quantum/common/extensions.py index 10795f805..f13a0c337 100644 --- a/quantum/common/extensions.py +++ b/quantum/common/extensions.py @@ -199,7 +199,10 @@ class ExtensionController(wsgi.Controller): def show(self, request, id): # NOTE(dprince): the extensions alias is used as the 'id' for show - ext = self.extension_manager.extensions[id] + ext = self.extension_manager.extensions.get(id, None) + if not ext: + raise webob.exc.HTTPNotFound( + _("Extension with alias %s does not exist") % id) return self._translate(ext) def delete(self, request, id): diff --git a/tests/unit/test_extensions.py b/tests/unit/test_extensions.py index b22a8a3c5..48027cb95 100644 --- a/tests/unit/test_extensions.py +++ b/tests/unit/test_extensions.py @@ -168,7 +168,7 @@ class RequestExtensionTest(BaseTest): def test_extend_get_resource_response(self): def extend_response_data(req, res): data = json.loads(res.body) - data['extended_key'] = req.GET.get('extended_key') + data['FOXNSOX:extended_key'] = req.GET.get('extended_key') res.body = json.dumps(data) return res @@ -177,7 +177,8 @@ class RequestExtensionTest(BaseTest): self.assertEqual(200, response.status_int) response_data = json.loads(response.body) - self.assertEqual('extended_data', response_data['extended_key']) + self.assertEqual('extended_data', + response_data['FOXNSOX:extended_key']) self.assertEqual('knox', response_data['fort']) def test_get_resources(self): @@ -344,6 +345,11 @@ class ExtensionControllerTest(unittest.TestCase): self.assertEqual(foxnsox_extension["namespace"], "http://www.fox.in.socks/api/ext/pie/v1.0") + def test_show_returns_not_found_for_non_existant_extension(self): + response = self.test_app.get("/extensions/non_existant", status="*") + + self.assertEqual(response.status_int, 404) + def app_factory(global_conf, **local_conf): conf = global_conf.copy() -- 2.45.2