]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Deepak/Vinkesh | Fixed show action in extension controller to return 404, added examp...
authorvinkesh banka <vinkeshb@thoughtworks.com>
Fri, 5 Aug 2011 07:05:04 +0000 (12:35 +0530)
committervinkesh banka <vinkeshb@thoughtworks.com>
Fri, 5 Aug 2011 07:05:04 +0000 (12:35 +0530)
quantum/common/extensions.py
tests/unit/test_extensions.py

index 10795f80536e30e559738240d633413b8972a498..f13a0c3370e02cf500eac71b09754c1cd57a1807 100644 (file)
@@ -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):
index b22a8a3c55fbee26c81f38e26c26ab435080aebd..48027cb950fef6431888472bc6ce88be2e26c682 100644 (file)
@@ -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()