]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Completes unittest coverage of quantum.api.api_common
authorZhongyue Luo <zhongyue.nah@intel.com>
Mon, 21 Jan 2013 08:31:08 +0000 (16:31 +0800)
committerZhongyue Luo <zhongyue.nah@intel.com>
Mon, 21 Jan 2013 09:06:09 +0000 (17:06 +0800)
Fixes bug #1102245

Change-Id: I01c8a563440f56db19d33a743549d2d50f5b48ee

quantum/tests/unit/test_api_api_common.py [new file with mode: 0644]

diff --git a/quantum/tests/unit/test_api_api_common.py b/quantum/tests/unit/test_api_api_common.py
new file mode 100644 (file)
index 0000000..cdd5d55
--- /dev/null
@@ -0,0 +1,97 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright (c) 2013 Intel Corporation.
+# All Rights Reserved.
+#
+#    Licensed under the Apache License, Version 2.0 (the "License"); you may
+#    not use this file except in compliance with the License. You may obtain
+#    a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+#    License for the specific language governing permissions and limitations
+#    under the License.
+#
+# @author: Zhongyue Luo, Intel Corporation.
+#
+
+import unittest2
+from webob import exc
+
+from quantum.api import api_common as common
+
+
+class FakeController(common.QuantumController):
+    _resource_name = 'fake'
+
+
+class APICommonTestCase(unittest2.TestCase):
+    def setUp(self):
+        self.controller = FakeController(None)
+
+    def test_prepare_request_body(self):
+        body = {
+            'fake': {
+                'name': 'terminator',
+                'model': 'T-800',
+            }
+        }
+        params = [
+            {'param-name': 'name',
+             'required': True},
+            {'param-name': 'model',
+             'required': True},
+            {'param-name': 'quote',
+             'required': False,
+             'default-value': "i'll be back"},
+        ]
+        expect = {
+            'fake': {
+                'name': 'terminator',
+                'model': 'T-800',
+                'quote': "i'll be back",
+            }
+        }
+        actual = self.controller._prepare_request_body(body, params)
+        self.assertDictEqual(expect, actual)
+
+    def test_prepare_request_body_none(self):
+        body = None
+        params = [
+            {'param-name': 'quote',
+             'required': False,
+             'default-value': "I'll be back"},
+        ]
+        expect = {
+            'fake': {
+                'quote': "I'll be back",
+            }
+        }
+        actual = self.controller._prepare_request_body(body, params)
+        self.assertDictEqual(expect, actual)
+
+    def test_prepare_request_body_keyerror(self):
+        body = {'t2': {}}
+        params = []
+        self.assertRaises(exc.HTTPBadRequest,
+                          self.controller._prepare_request_body,
+                          body,
+                          params)
+
+    def test_prepare_request_param_value_none(self):
+        body = {
+            'fake': {
+                'name': None,
+            }
+        }
+        params = [
+            {'param-name': 'name',
+             'required': True},
+        ]
+        self.assertRaises(exc.HTTPBadRequest,
+                          self.controller._prepare_request_body,
+                          body,
+                          params)