From d19606a82809f2a909d20b102166880b65d74b1f Mon Sep 17 00:00:00 2001 From: Claudiu Belu Date: Tue, 30 Jan 2018 06:06:47 -0800 Subject: [PATCH] autospecs os-win utils classes Most of the os-win utils are created through os_win.utilsfactory, which all rely on its function '_get_class' to load and initialize the proper Utils based on the OS version. This commit patches the mention method, returning an autospeced mock for the desired Utils instead. Closes-Bug: #1735588 Change-Id: If0002b2c711aaeaf13273bed9b912fdd9c639a64 --- compute_hyperv/tests/unit/cluster/test_clusterops.py | 2 -- .../tests/unit/cluster/test_livemigrationops.py | 2 -- compute_hyperv/tests/unit/test_base.py | 12 +++++++++++- .../tests/unit/test_block_device_manager.py | 1 - compute_hyperv/tests/unit/test_eventhandler.py | 4 +--- compute_hyperv/tests/unit/test_hostops.py | 2 -- compute_hyperv/tests/unit/test_imagecache.py | 2 -- compute_hyperv/tests/unit/test_livemigrationops.py | 1 - compute_hyperv/tests/unit/test_migrationops.py | 6 ------ compute_hyperv/tests/unit/test_rdpconsoleops.py | 3 --- .../tests/unit/test_serialconsolehandler.py | 2 -- compute_hyperv/tests/unit/test_serialconsoleops.py | 2 -- compute_hyperv/tests/unit/test_snapshotops.py | 2 -- compute_hyperv/tests/unit/test_vif.py | 1 - compute_hyperv/tests/unit/test_vmops.py | 6 ------ compute_hyperv/tests/unit/test_volumeops.py | 8 -------- 16 files changed, 12 insertions(+), 44 deletions(-) diff --git a/compute_hyperv/tests/unit/cluster/test_clusterops.py b/compute_hyperv/tests/unit/cluster/test_clusterops.py index 3ab6fc04..f4bcbafd 100644 --- a/compute_hyperv/tests/unit/cluster/test_clusterops.py +++ b/compute_hyperv/tests/unit/cluster/test_clusterops.py @@ -48,8 +48,6 @@ class ClusterOpsTestCase(test_base.HyperVBaseTestCase): self.clusterops = clusterops.ClusterOps() self.clusterops._context = self.context - self.clusterops._clustutils = mock.MagicMock() - self.clusterops._vmutils = mock.MagicMock() self._clustutils = self.clusterops._clustutils def test_get_instance_host(self): diff --git a/compute_hyperv/tests/unit/cluster/test_livemigrationops.py b/compute_hyperv/tests/unit/cluster/test_livemigrationops.py index 5564686b..81618b03 100644 --- a/compute_hyperv/tests/unit/cluster/test_livemigrationops.py +++ b/compute_hyperv/tests/unit/cluster/test_livemigrationops.py @@ -38,8 +38,6 @@ class ClusterLiveMigrationOpsTestCase(test_base.HyperVBaseTestCase): super(ClusterLiveMigrationOpsTestCase, self).setUp() self._fake_context = 'fake_context' self.livemigrops = livemigrationops.ClusterLiveMigrationOps() - self.livemigrops._clustutils = mock.MagicMock() - self._clustutils = self.livemigrops._clustutils def test_is_instance_clustered(self): diff --git a/compute_hyperv/tests/unit/test_base.py b/compute_hyperv/tests/unit/test_base.py index d443709f..9adc09d6 100644 --- a/compute_hyperv/tests/unit/test_base.py +++ b/compute_hyperv/tests/unit/test_base.py @@ -16,6 +16,7 @@ import mock from os_win import utilsfactory +from oslo_utils import importutils from compute_hyperv.tests import test @@ -26,12 +27,21 @@ class HyperVBaseTestCase(test.NoDBTestCase): def setUp(self): super(HyperVBaseTestCase, self).setUp() - utilsfactory_patcher = mock.patch.object(utilsfactory, '_get_class') + utilsfactory_patcher = mock.patch.object( + utilsfactory, '_get_class', HyperVBaseTestCase._mock_get_class) utilsfactory_patcher.start() self._patch_autospec_classes() self.addCleanup(mock.patch.stopall) + @staticmethod + def _mock_get_class(class_type, *args, **kwargs): + existing_classes = utilsfactory.utils_map[class_type] + class_info = list(existing_classes.values())[0] + imported_class = importutils.import_class(class_info['path']) + + return mock.Mock(autospec=imported_class) + def _patch_autospec_classes(self): for class_type in self._autospec_classes: mocked_class = mock.MagicMock(autospec=class_type) diff --git a/compute_hyperv/tests/unit/test_block_device_manager.py b/compute_hyperv/tests/unit/test_block_device_manager.py index 6e9f93e2..d3d90b46 100644 --- a/compute_hyperv/tests/unit/test_block_device_manager.py +++ b/compute_hyperv/tests/unit/test_block_device_manager.py @@ -51,7 +51,6 @@ class BlockDeviceManagerTestCase(test_base.HyperVBaseTestCase): def setUp(self): super(BlockDeviceManagerTestCase, self).setUp() self._bdman = block_device_manager.BlockDeviceInfoManager() - self._bdman._vmutils = mock.Mock() self._volops = self._bdman._volops self._pathutils = self._bdman._pathutils diff --git a/compute_hyperv/tests/unit/test_eventhandler.py b/compute_hyperv/tests/unit/test_eventhandler.py index 51fe6075..04ccafb0 100644 --- a/compute_hyperv/tests/unit/test_eventhandler.py +++ b/compute_hyperv/tests/unit/test_eventhandler.py @@ -17,7 +17,6 @@ import mock from nova import utils from nova.virt import driver from os_win import constants -from os_win import utilsfactory from compute_hyperv.nova import eventhandler from compute_hyperv.nova import vmops @@ -33,8 +32,7 @@ class EventHandlerTestCase(test_base.HyperVBaseTestCase): _FAKE_POLLING_INTERVAL = 3 _FAKE_EVENT_CHECK_TIMEFRAME = 15 - @mock.patch.object(utilsfactory, 'get_vmutils') - def setUp(self, mock_get_vmutils): + def setUp(self): super(EventHandlerTestCase, self).setUp() self._state_change_callback = mock.Mock( diff --git a/compute_hyperv/tests/unit/test_hostops.py b/compute_hyperv/tests/unit/test_hostops.py index ffd6b925..678ce38a 100644 --- a/compute_hyperv/tests/unit/test_hostops.py +++ b/compute_hyperv/tests/unit/test_hostops.py @@ -52,8 +52,6 @@ class HostOpsTestCase(test_base.HyperVBaseTestCase): def setUp(self): super(HostOpsTestCase, self).setUp() self._hostops = hostops.HostOps() - self._hostops._hostutils = mock.MagicMock() - self._hostops._diskutils = mock.MagicMock() def test_get_cpu_info(self): mock_processors = mock.MagicMock() diff --git a/compute_hyperv/tests/unit/test_imagecache.py b/compute_hyperv/tests/unit/test_imagecache.py index fb598124..3e5d6f32 100644 --- a/compute_hyperv/tests/unit/test_imagecache.py +++ b/compute_hyperv/tests/unit/test_imagecache.py @@ -50,8 +50,6 @@ class ImageCacheTestCase(test_base.HyperVBaseTestCase): self.instance = fake_instance.fake_instance_obj(self.context) self.imagecache = imagecache.ImageCache() - self.imagecache._vhdutils = mock.MagicMock() - self.tmpdir = self.useFixture(fixtures.TempDir()).path def _test_get_root_vhd_size_gb(self, old_flavor=True): diff --git a/compute_hyperv/tests/unit/test_livemigrationops.py b/compute_hyperv/tests/unit/test_livemigrationops.py index 9f724b6e..464ab196 100644 --- a/compute_hyperv/tests/unit/test_livemigrationops.py +++ b/compute_hyperv/tests/unit/test_livemigrationops.py @@ -44,7 +44,6 @@ class LiveMigrationOpsTestCase(test_base.HyperVBaseTestCase): super(LiveMigrationOpsTestCase, self).setUp() self.context = 'fake_context' self._livemigrops = livemigrationops.LiveMigrationOps() - self._livemigrops._livemigrutils = mock.MagicMock() self._pathutils = self._livemigrops._pathutils def _test_live_migration(self, side_effect=None, diff --git a/compute_hyperv/tests/unit/test_migrationops.py b/compute_hyperv/tests/unit/test_migrationops.py index f9eba24a..b25e2d4a 100644 --- a/compute_hyperv/tests/unit/test_migrationops.py +++ b/compute_hyperv/tests/unit/test_migrationops.py @@ -49,12 +49,6 @@ class MigrationOpsTestCase(test_base.HyperVBaseTestCase): self.context = 'fake-context' self._migrationops = migrationops.MigrationOps() - self._migrationops._hostutils = mock.MagicMock() - self._migrationops._vmutils = mock.MagicMock() - self._migrationops._vhdutils = mock.MagicMock() - self._migrationops._migrationutils = mock.MagicMock() - self._migrationops._metricsutils = mock.MagicMock() - self._hostutils = self._migrationops._hostutils self._vmops = self._migrationops._vmops self._vmutils = self._migrationops._vmutils self._pathutils = self._migrationops._pathutils diff --git a/compute_hyperv/tests/unit/test_rdpconsoleops.py b/compute_hyperv/tests/unit/test_rdpconsoleops.py index 8024feb1..b008a8a5 100644 --- a/compute_hyperv/tests/unit/test_rdpconsoleops.py +++ b/compute_hyperv/tests/unit/test_rdpconsoleops.py @@ -31,10 +31,7 @@ class RDPConsoleOpsTestCase(test_base.HyperVBaseTestCase): def setUp(self): super(RDPConsoleOpsTestCase, self).setUp() - self.rdpconsoleops = rdpconsoleops.RDPConsoleOps() - self.rdpconsoleops._vmutils = mock.MagicMock() - self.rdpconsoleops._rdpconsoleutils = mock.MagicMock() def test_get_rdp_console(self): mock_get_host_ip = self.rdpconsoleops._hostops.get_host_ip_addr diff --git a/compute_hyperv/tests/unit/test_serialconsolehandler.py b/compute_hyperv/tests/unit/test_serialconsolehandler.py index 9c6d0309..f7b07f51 100644 --- a/compute_hyperv/tests/unit/test_serialconsolehandler.py +++ b/compute_hyperv/tests/unit/test_serialconsolehandler.py @@ -37,9 +37,7 @@ class SerialConsoleHandlerTestCase(test_base.HyperVBaseTestCase): self._consolehandler = serialconsolehandler.SerialConsoleHandler( mock.sentinel.instance_name) - self._consolehandler._log_path = mock.sentinel.log_path - self._consolehandler._vmutils = mock.Mock() @mock.patch.object(serialconsolehandler.SerialConsoleHandler, '_setup_handlers') diff --git a/compute_hyperv/tests/unit/test_serialconsoleops.py b/compute_hyperv/tests/unit/test_serialconsoleops.py index c3900082..1a3feb14 100644 --- a/compute_hyperv/tests/unit/test_serialconsoleops.py +++ b/compute_hyperv/tests/unit/test_serialconsoleops.py @@ -33,8 +33,6 @@ class SerialConsoleOpsTestCase(test_base.HyperVBaseTestCase): super(SerialConsoleOpsTestCase, self).setUp() serialconsoleops._console_handlers = {} self._serialops = serialconsoleops.SerialConsoleOps() - self._serialops._vmutils = mock.MagicMock() - self._vmutils = self._serialops._vmutils def _setup_console_handler_mock(self): diff --git a/compute_hyperv/tests/unit/test_snapshotops.py b/compute_hyperv/tests/unit/test_snapshotops.py index 1146e602..cf0f31ba 100644 --- a/compute_hyperv/tests/unit/test_snapshotops.py +++ b/compute_hyperv/tests/unit/test_snapshotops.py @@ -35,8 +35,6 @@ class SnapshotOpsTestCase(test_base.HyperVBaseTestCase): self.context = 'fake_context' self._snapshotops = snapshotops.SnapshotOps() - self._snapshotops._vmutils = mock.MagicMock() - self._snapshotops._vhdutils = mock.MagicMock() @mock.patch('nova.image.glance.get_remote_image_service') def test_save_glance_image(self, mock_get_remote_image_service): diff --git a/compute_hyperv/tests/unit/test_vif.py b/compute_hyperv/tests/unit/test_vif.py index 01e79de0..0820cbaf 100644 --- a/compute_hyperv/tests/unit/test_vif.py +++ b/compute_hyperv/tests/unit/test_vif.py @@ -45,7 +45,6 @@ class HyperVVIFDriverTestCase(test_base.HyperVBaseTestCase): def setUp(self): super(HyperVVIFDriverTestCase, self).setUp() self.vif_driver = vif.HyperVVIFDriver() - self.vif_driver._netutils = mock.MagicMock() self.vif_driver._vif_plugin = mock.MagicMock() @mock.patch.object(vif.nova.network, 'is_neutron') diff --git a/compute_hyperv/tests/unit/test_vmops.py b/compute_hyperv/tests/unit/test_vmops.py index aa1b013b..b28b42ff 100644 --- a/compute_hyperv/tests/unit/test_vmops.py +++ b/compute_hyperv/tests/unit/test_vmops.py @@ -75,13 +75,7 @@ class VMOpsTestCase(test_base.HyperVBaseTestCase): self.context = 'fake-context' self._vmops = vmops.VMOps(virtapi=mock.MagicMock()) - self._vmops._vmutils = mock.MagicMock() - self._vmops._metricsutils = mock.MagicMock() - self._vmops._vhdutils = mock.MagicMock() - self._vmops._hostutils = mock.MagicMock() - self._vmops._migrutils = mock.MagicMock() self._pathutils = self._vmops._pathutils - self._vmutils = self._vmops._vmutils def test_list_instances(self): diff --git a/compute_hyperv/tests/unit/test_volumeops.py b/compute_hyperv/tests/unit/test_volumeops.py index f0cf8415..be1cf94e 100644 --- a/compute_hyperv/tests/unit/test_volumeops.py +++ b/compute_hyperv/tests/unit/test_volumeops.py @@ -69,8 +69,6 @@ class VolumeOpsTestCase(test_base.HyperVBaseTestCase): def setUp(self): super(VolumeOpsTestCase, self).setUp() self._volumeops = volumeops.VolumeOps() - self._volumeops._volutils = mock.MagicMock() - self._volumeops._vmutils = mock.Mock() self._volume_api = self._volumeops._volume_api def test_get_volume_driver(self): @@ -537,10 +535,6 @@ class BaseVolumeDriverTestCase(test_base.HyperVBaseTestCase): super(BaseVolumeDriverTestCase, self).setUp() self._base_vol_driver = volumeops.BaseVolumeDriver() - - self._base_vol_driver._diskutils = mock.Mock() - self._base_vol_driver._vmutils = mock.Mock() - self._base_vol_driver._migrutils = mock.Mock() self._base_vol_driver._conn = mock.Mock() self._vmutils = self._base_vol_driver._vmutils self._migrutils = self._base_vol_driver._migrutils @@ -868,8 +862,6 @@ class SMBFSVolumeDriverTestCase(test_base.HyperVBaseTestCase): super(SMBFSVolumeDriverTestCase, self).setUp() self._volume_driver = volumeops.SMBFSVolumeDriver() self._volume_driver._conn = mock.Mock() - self._volume_driver._vmutils = mock.Mock() - self._volume_driver._vhdutils = mock.Mock() self._conn = self._volume_driver._conn self._vmutils = self._volume_driver._vmutils self._pathutils = self._volume_driver._pathutils