From 00ad3bb1f1ed9ca666dac909baaa3aa97a0e1865 Mon Sep 17 00:00:00 2001 From: Stephen Finucane Date: Fri, 30 Oct 2020 14:13:02 +0000 Subject: [PATCH] tests: Merge 'test_hypervisor_status' into 'test_hypervisors' No need for this to be a separate thing. It's confusing. Change-Id: I99e2c19bc78e98a8e9e3743ff51201015fb1d47e Signed-off-by: Stephen Finucane --- .../compute/test_hypervisor_status.py | 91 ------------------- .../api/openstack/compute/test_hypervisors.py | 57 ++++++++++-- 2 files changed, 49 insertions(+), 99 deletions(-) delete mode 100644 nova/tests/unit/api/openstack/compute/test_hypervisor_status.py diff --git a/nova/tests/unit/api/openstack/compute/test_hypervisor_status.py b/nova/tests/unit/api/openstack/compute/test_hypervisor_status.py deleted file mode 100644 index 29d827232baa..000000000000 --- a/nova/tests/unit/api/openstack/compute/test_hypervisor_status.py +++ /dev/null @@ -1,91 +0,0 @@ -# Copyright 2014 Intel Corp. -# -# 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 copy - -import mock - -from nova.api.openstack.compute import hypervisors \ - as hypervisors_v21 -from nova import objects -from nova import test -from nova.tests.unit.api.openstack.compute import test_hypervisors -from nova.tests.unit.api.openstack import fakes - -TEST_HYPER = test_hypervisors.TEST_HYPERS_OBJ[0].obj_clone() -TEST_SERVICE = objects.Service(id=1, - host="compute1", - binary="nova-compute", - topic="compute_topic", - report_count=5, - disabled=False, - disabled_reason=None, - availability_zone="nova") - - -class HypervisorStatusTestV21(test.NoDBTestCase): - def _prepare_extension(self): - self.controller = hypervisors_v21.HypervisorsController() - self.controller.servicegroup_api.service_is_up = mock.MagicMock( - return_value=True) - - def _get_request(self): - return fakes.HTTPRequest.blank( - '/v2/%s/os-hypervisors/detail' % fakes.FAKE_PROJECT_ID, - use_admin_context=True) - - def test_view_hypervisor_service_status(self): - self._prepare_extension() - req = self._get_request() - - result = self.controller._view_hypervisor( - TEST_HYPER, TEST_SERVICE, False, req) - self.assertEqual('enabled', result['status']) - self.assertEqual('up', result['state']) - self.assertEqual('enabled', result['status']) - - self.controller.servicegroup_api.service_is_up.return_value = False - result = self.controller._view_hypervisor( - TEST_HYPER, TEST_SERVICE, False, req) - self.assertEqual('down', result['state']) - - hyper = copy.deepcopy(TEST_HYPER) - service = copy.deepcopy(TEST_SERVICE) - service.disabled = True - result = self.controller._view_hypervisor(hyper, service, False, req) - self.assertEqual('disabled', result['status']) - - def test_view_hypervisor_detail_status(self): - self._prepare_extension() - req = self._get_request() - - result = self.controller._view_hypervisor( - TEST_HYPER, TEST_SERVICE, True, req) - - self.assertEqual('enabled', result['status']) - self.assertEqual('up', result['state']) - self.assertIsNone(result['service']['disabled_reason']) - - self.controller.servicegroup_api.service_is_up.return_value = False - result = self.controller._view_hypervisor( - TEST_HYPER, TEST_SERVICE, True, req) - self.assertEqual('down', result['state']) - - hyper = copy.deepcopy(TEST_HYPER) - service = copy.deepcopy(TEST_SERVICE) - service.disabled = True - service.disabled_reason = "fake" - result = self.controller._view_hypervisor(hyper, service, True, req) - self.assertEqual('disabled', result['status'],) - self.assertEqual('fake', result['service']['disabled_reason']) diff --git a/nova/tests/unit/api/openstack/compute/test_hypervisors.py b/nova/tests/unit/api/openstack/compute/test_hypervisors.py index 4a153b7a365a..082062236d76 100644 --- a/nova/tests/unit/api/openstack/compute/test_hypervisors.py +++ b/nova/tests/unit/api/openstack/compute/test_hypervisors.py @@ -22,8 +22,7 @@ from oslo_utils.fixture import uuidsentinel as uuids import six from webob import exc -from nova.api.openstack.compute import hypervisors \ - as hypervisors_v21 +from nova.api.openstack.compute import hypervisors as hypervisors_v21 from nova import exception from nova import objects from nova import test @@ -219,11 +218,6 @@ class HypervisorsTestV21(test.NoDBTestCase): use_admin_context=use_admin_context, version=self.api_version) - def _set_up_controller(self): - self.controller = hypervisors_v21.HypervisorsController() - self.controller.servicegroup_api.service_is_up = mock.MagicMock( - return_value=True) - def _get_hyper_id(self): """Helper function to get the proper hypervisor id for a request @@ -235,7 +229,10 @@ class HypervisorsTestV21(test.NoDBTestCase): def setUp(self): super(HypervisorsTestV21, self).setUp() - self._set_up_controller() + + self.controller = hypervisors_v21.HypervisorsController() + self.controller.servicegroup_api.service_is_up = mock.MagicMock( + return_value=True) host_api = self.controller.host_api host_api.compute_node_get_all = mock.MagicMock( @@ -264,6 +261,50 @@ class HypervisorsTestV21(test.NoDBTestCase): self.assertEqual(self.DETAIL_HYPERS_DICTS[0], result) + def test_view_hypervisor_nodetail_service_down(self): + self.controller.servicegroup_api.service_is_up.return_value = False + + expected_dict = copy.deepcopy(self.INDEX_HYPER_DICTS[0]) + expected_dict['state'] = 'down' + + req = self._get_request(True) + result = self.controller._view_hypervisor( + self.TEST_HYPERS_OBJ[0], self.TEST_SERVICES[0], False, req) + + self.assertEqual(expected_dict, result) + + def test_view_hypervisor_detail_service_down(self): + self.controller.servicegroup_api.service_is_up.return_value = False + + expected_dict = copy.deepcopy(self.DETAIL_HYPERS_DICTS[0]) + expected_dict['state'] = 'down' + + req = self._get_request(True) + result = self.controller._view_hypervisor( + self.TEST_HYPERS_OBJ[0], self.TEST_SERVICES[0], True, req) + + self.assertEqual(expected_dict, result) + + def test_view_hypervisor_nodetail_service_disabled(self): + service = copy.deepcopy(TEST_SERVICES[0]) + service.disabled = True + + req = self._get_request(True) + result = self.controller._view_hypervisor( + self.TEST_HYPERS_OBJ[0], service, False, req) + + self.assertEqual('disabled', result['status']) + + def test_view_hypervisor_detail_service_disabled(self): + service = copy.deepcopy(TEST_SERVICES[0]) + service.disabled = True + + req = self._get_request(True) + result = self.controller._view_hypervisor( + self.TEST_HYPERS_OBJ[0], service, True, req) + + self.assertEqual('disabled', result['status']) + def test_view_hypervisor_servers(self): req = self._get_request(True) result = self.controller._view_hypervisor(self.TEST_HYPERS_OBJ[0],