From cbba5a0cca22ada4d9dc0e7f87b13ab26151e287 Mon Sep 17 00:00:00 2001 From: Eric Fried Date: Wed, 27 Jul 2016 09:57:28 -0500 Subject: [PATCH] Rebase on pypowervm.tasks.hdisk refactor pypowervm recently moved the symbols from pypowervm/tasks/hdisk.py to pypowervm/tasks/hdisk/__init__.py, and the method contents into private modules within that package. The change is transparent to consuming code - except in unit tests which mock.patch symbols that are invoked from *within* methods invoked by the consuming code (which we shouldn't be patching anyway). For example, pypowervm.tasks.hdisk contains discover_hdisk and lua_recovery, where the former invokes the latter. If consuming unit tests patch pypowervm.tasks.hdisk.lua_recovery, the patch will be missed, since it is actually looked up by pypowervm itself as pypowervm.tasks.hdisk.{private_module}.lua_recovery. This change set refactors unit tests such that we're always patching the first-level methods from pypowervm.tasks.hdisk. Change-Id: I8415c86d97187dd98eb1e67164b93e59ec61c599 Closes-Bug: 1607467 --- .../tests/virt/powervm/volume/test_vscsi.py | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/nova_powervm/tests/virt/powervm/volume/test_vscsi.py b/nova_powervm/tests/virt/powervm/volume/test_vscsi.py index f202bcab..219f231e 100644 --- a/nova_powervm/tests/virt/powervm/volume/test_vscsi.py +++ b/nova_powervm/tests/virt/powervm/volume/test_vscsi.py @@ -98,7 +98,7 @@ class TestVSCSIAdapter(BaseVSCSITest): self.slot_mgr = mock.Mock() self.slot_mgr.build_map.get_vscsi_slot.return_value = 62, 'the_lua' - @mock.patch('pypowervm.tasks.hdisk.lua_recovery') + @mock.patch('pypowervm.tasks.hdisk.discover_hdisk') @mock.patch('pypowervm.tasks.storage.find_stale_lpars') def test_pre_live_migration(self, mock_fsl, mock_discover): # The mock return values @@ -166,9 +166,9 @@ class TestVSCSIAdapter(BaseVSCSITest): @mock.patch('pypowervm.tasks.scsi_mapper.add_map') @mock.patch('pypowervm.tasks.scsi_mapper.build_vscsi_mapping') - @mock.patch('pypowervm.tasks.hdisk.lua_recovery') + @mock.patch('pypowervm.tasks.hdisk.discover_hdisk') @mock.patch('nova_powervm.virt.powervm.vm.get_vm_id') - def test_connect_volume_rebuild_new_vio(self, mock_get_vm_id, mock_lua, + def test_connect_volume_rebuild_new_vio(self, mock_get_vm_id, mock_disc, mock_build_map, mock_add_map): """Check if bad slot map. @@ -181,7 +181,7 @@ class TestVSCSIAdapter(BaseVSCSITest): # Set up that the device is on the VIOS mock_get_vm_id.return_value = 'partition_id' mock_build_map.side_effect = Exception - mock_lua.return_value = ( + mock_disc.return_value = ( hdisk.LUAStatus.DEVICE_AVAILABLE, 'devname', 'udid') # Run the method. It will fail only because there isn't a second @@ -194,12 +194,12 @@ class TestVSCSIAdapter(BaseVSCSITest): @mock.patch('pypowervm.tasks.scsi_mapper.add_map') @mock.patch('pypowervm.tasks.scsi_mapper.build_vscsi_mapping') - @mock.patch('pypowervm.tasks.hdisk.lua_recovery') + @mock.patch('pypowervm.tasks.hdisk.discover_hdisk') @mock.patch('nova_powervm.virt.powervm.vm.get_vm_id') - def test_connect_volume(self, mock_get_vm_id, mock_lua_recovery, + def test_connect_volume(self, mock_get_vm_id, mock_disc_hdisk, mock_build_map, mock_add_map): # The mock return values - mock_lua_recovery.return_value = ( + mock_disc_hdisk.return_value = ( hdisk.LUAStatus.DEVICE_AVAILABLE, 'devname', 'udid') mock_get_vm_id.return_value = 'partition_id' @@ -250,17 +250,14 @@ class TestVSCSIAdapter(BaseVSCSITest): self.assertEqual(1, mock_disc_hdisk.call_count) @mock.patch('pypowervm.tasks.hdisk.build_itls') - @mock.patch('pypowervm.tasks.hdisk.lua_recovery') @mock.patch('pypowervm.tasks.scsi_mapper.add_vscsi_mapping') @mock.patch('nova_powervm.virt.powervm.volume.vscsi.VscsiVolumeAdapter.' '_validate_vios_on_connection') @mock.patch('nova_powervm.virt.powervm.vm.get_vm_id') def test_connect_volume_to_initiators( self, mock_get_vm_id, mock_validate_vioses, mock_add_vscsi_mapping, - mock_lua_recovery, mock_build_itls): + mock_build_itls): """Tests that the connect w/out initiators throws errors.""" - mock_lua_recovery.return_value = ( - hdisk.LUAStatus.DEVICE_AVAILABLE, 'devname', 'udid') mock_get_vm_id.return_value = 'partition_id' mock_instance = mock.Mock() @@ -571,7 +568,7 @@ class TestVSCSIAdapterMultiVIOS(BaseVSCSITest): # Two of the calls are for the slots, two are for the add mappings self.assertEqual(2, self.ft_fx.patchers['update'].mock.call_count) - @mock.patch('pypowervm.tasks.hdisk.lua_recovery') + @mock.patch('pypowervm.tasks.hdisk.discover_hdisk') @mock.patch('pypowervm.tasks.storage.find_stale_lpars') def test_pre_live_migration_multi_vios(self, mock_fsl, mock_discover): # The mock return values