diff options
author | Xiaohua Zhang <xiaohua.zhang@windriver.com> | 2019-04-09 05:03:14 +0000 |
---|---|---|
committer | Xiaohua Zhang <xiaohua.zhang@windriver.com> | 2019-04-09 06:09:30 +0000 |
commit | 12d213721a7ecb6fb4604cdd3190035acf46458d (patch) | |
tree | c6601639e19e9000e94ce7fee3d6354bb4fdfa84 /multivimbroker | |
parent | acbf18f98440e52e55cfe85ff75845081b7c9165 (diff) |
Add UT for apiV1 capcity_check
Change-Id: If5ea7521fd613083e82a83506370e37a6f49e02c
Issue-ID: MULTICLOUD-563
Signed-off-by: Xiaohua Zhang <xiaohua.zhang@windriver.com>
Diffstat (limited to 'multivimbroker')
-rw-r--r-- | multivimbroker/multivimbroker/tests/test_v1_check_capacity.py | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/multivimbroker/multivimbroker/tests/test_v1_check_capacity.py b/multivimbroker/multivimbroker/tests/test_v1_check_capacity.py new file mode 100644 index 0000000..71ba911 --- /dev/null +++ b/multivimbroker/multivimbroker/tests/test_v1_check_capacity.py @@ -0,0 +1,103 @@ +# Copyright (c) 2019 Wind River Systems, Inc. +# +# 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. + +import mock +import unittest + +from rest_framework import status + +from multivimbroker.forwarder.views import APIv1CheckCapacity + + +class V1CheckCapacityTest(unittest.TestCase): + + def setUp(self): + self.view = APIv1CheckCapacity() + super(V1CheckCapacityTest, self).setUp() + + def tearDown(self): + pass + + def test_check_capacity_success(self): + req = mock.Mock() + req.body = """ + { + "vCPU": 1, + "Memory": 1, + "Storage": 500, + "VIMs": [{"cloud-owner": "openstack", + "cloud-region-id": "RegionOne"}] + }""" + req.get_full_path.return_value = ("http://msb.onap.org/api/multicloud" + "/v1/check_vim_capacity") + req.META.items.return_value = [("Project", "projectname1")] + with mock.patch.object(self.view, "send") as send: + plugin_resp = mock.Mock() + plugin_resp.content = """{ + "result": true + }""" + plugin_resp.status_code = str(status.HTTP_200_OK) + send.return_value = plugin_resp + + resp = self.view.post(req) + expect_body = { + "VIMs": [{"cloud-owner": "openstack", + "cloud-region-id": "RegionOne", + "AZs": []}] + } + self.assertEqual(status.HTTP_200_OK, resp.status_code) + self.assertDictEqual(expect_body, resp.data) + + def test_check_capacity_no_suitable_vim(self): + req = mock.Mock() + req.body = """ + { + "vCPU": 1, + "Memory": 1, + "Storage": 500, + "VIMs": [{"cloud-owner": "openstack", + "cloud-region-id": "RegionOne"}] + }""" + req.get_full_path.return_value = ("http://msb.onap.org/api/multicloud" + "/v1/check_vim_capacity") + req.META.items.return_value = [("Project", "projectname1")] + + with mock.patch.object(self.view, "send") as send: + plugin_resp = mock.Mock() + plugin_resp.content = """{ + "result": false + }""" + plugin_resp.status_code = str(status.HTTP_200_OK) + send.return_value = plugin_resp + + resp = self.view.post(req) + expect_body = { + "VIMs": [] + } + self.assertEqual(status.HTTP_200_OK, resp.status_code) + self.assertDictEqual(expect_body, resp.data) + + def test_check_capacity_invalid_input(self): + req = mock.Mock() + req.body = "hello world" + req.get_full_path.return_value = ("http://msb.onap.org/api/multicloud" + "/v1/check_vim_capacity") + req.META.items.return_value = [("Project", "projectname1")] + expect_body = { + "error": ("Invalidate request body " + "No JSON object could be decoded.") + } + resp = self.view.post(req) + self.assertEqual(status.HTTP_400_BAD_REQUEST, resp.status_code) + self.assertDictEqual(expect_body, resp.data) |