From fbca0acf9c457f00196e209c87ff7d42b5267f45 Mon Sep 17 00:00:00 2001 From: Zhongyue Luo Date: Mon, 21 Jan 2013 16:31:08 +0800 Subject: [PATCH] Completes unittest coverage of quantum.api.api_common Fixes bug #1102245 Change-Id: I01c8a563440f56db19d33a743549d2d50f5b48ee --- quantum/tests/unit/test_api_api_common.py | 97 +++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 quantum/tests/unit/test_api_api_common.py diff --git a/quantum/tests/unit/test_api_api_common.py b/quantum/tests/unit/test_api_api_common.py new file mode 100644 index 000000000..cdd5d55d4 --- /dev/null +++ b/quantum/tests/unit/test_api_api_common.py @@ -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) -- 2.45.2