From a5f39bd9c3771b4cf64c1a5b68bb850988e1fc73 Mon Sep 17 00:00:00 2001 From: Takashi NATSUME Date: Wed, 7 Aug 2019 14:38:45 +0900 Subject: [PATCH] Fix non-existent method of Mock There is no method called_once_with() in Mock object. Use assert_called_once_with() or assert_has_calls() instead. NOTE(takashin): Additional changes are also applied to nova/tests/unit/virt/libvirt/test_vif.py because the following change has not been applied in stable/rocky. I047856982251fddc631679fb2dbcea0f3b0db097 Change-Id: I9f73fcbe7c3dfd64e75ac8224c13934b03443cd5 Closes-Bug: #1544522 (cherry picked from commit cf7d28eb6ea47818e9f3584f65ec025f5a46326b) (cherry picked from commit d90186068b197f0912fa2bf525bb752f2d8f3c31) --- nova/tests/unit/compute/test_compute_api.py | 29 ++++++++++--------- nova/tests/unit/compute/test_compute_mgr.py | 4 +-- .../tests/unit/console/test_websocketproxy.py | 2 +- nova/tests/unit/pci/test_utils.py | 10 +++---- nova/tests/unit/virt/libvirt/test_driver.py | 19 ++++++------ nova/tests/unit/virt/libvirt/test_vif.py | 4 +-- 6 files changed, 35 insertions(+), 33 deletions(-) diff --git a/nova/tests/unit/compute/test_compute_api.py b/nova/tests/unit/compute/test_compute_api.py index 666a3d37b810..4696327530d2 100644 --- a/nova/tests/unit/compute/test_compute_api.py +++ b/nova/tests/unit/compute/test_compute_api.py @@ -5475,33 +5475,32 @@ class _ComputeAPIUnitTestMixIn(object): return migration @mock.patch('nova.compute.api.API._record_action_start') - @mock.patch.object(compute_rpcapi.ComputeAPI, 'live_migration_abort') @mock.patch.object(objects.Migration, 'get_by_id_and_instance') def test_live_migrate_abort_succeeded(self, mock_get_migration, - mock_lm_abort, mock_rec_action): instance = self._create_instance_obj() instance.task_state = task_states.MIGRATING migration = self._get_migration(21, 'running', 'live-migration') mock_get_migration.return_value = migration - self.compute_api.live_migrate_abort(self.context, - instance, - migration.id) + with mock.patch.object(self.compute_api.compute_rpcapi, + 'live_migration_abort') as mock_lm_abort: + self.compute_api.live_migrate_abort(self.context, + instance, + migration.id) + mock_lm_abort.assert_called_once_with(self.context, instance, + migration.id) mock_rec_action.assert_called_once_with(self.context, instance, instance_actions.LIVE_MIGRATION_CANCEL) - mock_lm_abort.called_once_with(self.context, instance, migration.id) @mock.patch('nova.compute.api.API._record_action_start') - @mock.patch.object(compute_rpcapi.ComputeAPI, 'live_migration_abort') @mock.patch.object(objects.Migration, 'get_by_id_and_instance') @mock.patch.object(objects.Service, 'get_by_compute_host') def test_live_migrate_abort_in_queue_succeeded(self, mock_get_service, mock_get_migration, - mock_lm_abort, mock_rec_action): service_obj = objects.Service() service_obj.version = ( @@ -5513,16 +5512,18 @@ class _ComputeAPIUnitTestMixIn(object): migration = self._get_migration( 21, migration_status, 'live-migration') mock_get_migration.return_value = migration - self.compute_api.live_migrate_abort(self.context, - instance, - migration.id, - support_abort_in_queue=True) + + with mock.patch.object(self.compute_api.compute_rpcapi, + 'live_migration_abort') as mock_lm_abort: + self.compute_api.live_migrate_abort( + self.context, instance, migration.id, + support_abort_in_queue=True) + mock_lm_abort.assert_called_once_with(self.context, instance, + migration.id) mock_rec_action.assert_called_once_with( self.context, instance, instance_actions.LIVE_MIGRATION_CANCEL) - mock_lm_abort.called_once_with(self.context, instance, migration) mock_get_migration.reset_mock() mock_rec_action.reset_mock() - mock_lm_abort.reset_mock() @mock.patch.object(objects.Migration, 'get_by_id_and_instance') def test_live_migration_abort_in_queue_old_microversion_fails( diff --git a/nova/tests/unit/compute/test_compute_mgr.py b/nova/tests/unit/compute/test_compute_mgr.py index 5e51262198b8..bc26d32c8779 100644 --- a/nova/tests/unit/compute/test_compute_mgr.py +++ b/nova/tests/unit/compute/test_compute_mgr.py @@ -8513,8 +8513,8 @@ class ComputeManagerMigrationTestCase(test.NoDBTestCase): mock_remove_conn.assert_called_once_with(self.context, instance, bdm.volume_id, None) - mock_attach_delete.called_once_with(self.context, - new_attachment_id) + mock_attach_delete.assert_called_once_with(self.context, + new_attachment_id) self.assertEqual(bdm.attachment_id, orig_attachment_id) self.assertEqual(orig_attachment_id, bdm.connection_info) bdm.save.assert_called_once_with() diff --git a/nova/tests/unit/console/test_websocketproxy.py b/nova/tests/unit/console/test_websocketproxy.py index b838a3e03fc8..ea13299df743 100644 --- a/nova/tests/unit/console/test_websocketproxy.py +++ b/nova/tests/unit/console/test_websocketproxy.py @@ -107,7 +107,7 @@ class NovaProxyRequestHandlerDBTestCase(test.TestCase): return_value=ctxt): self.wh.new_websocket_client() - mock_validate.called_once_with(ctxt, '123-456-789') + mock_validate.assert_called_once_with(ctxt, '123-456-789') mock_validate_port.assert_called_once_with( ctxt, mock_inst_get.return_value, str(db_obj['port']), db_obj['console_type']) diff --git a/nova/tests/unit/pci/test_utils.py b/nova/tests/unit/pci/test_utils.py index 6675be5c2471..ccdaf1ea787b 100644 --- a/nova/tests/unit/pci/test_utils.py +++ b/nova/tests/unit/pci/test_utils.py @@ -291,15 +291,15 @@ class GetNetNameByVfPciAddressTestCase(test.NoDBTestCase): self.mock_get_ifname.return_value = self.if_name net_name = utils.get_net_name_by_vf_pci_address(self.pci_address) self.assertEqual(ref_net_name, net_name) - self.mock_get_mac.called_once_with(self.pci_address) - self.mock_get_ifname.called_once_with(self.pci_address) + self.mock_get_mac.assert_called_once_with(self.pci_address) + self.mock_get_ifname.assert_called_once_with(self.pci_address) def test_wrong_mac(self): self.mock_get_mac.side_effect = ( exception.PciDeviceNotFoundById(self.pci_address)) net_name = utils.get_net_name_by_vf_pci_address(self.pci_address) self.assertIsNone(net_name) - self.mock_get_mac.called_once_with(self.pci_address) + self.mock_get_mac.assert_called_once_with(self.pci_address) self.mock_get_ifname.assert_not_called() def test_wrong_ifname(self): @@ -308,5 +308,5 @@ class GetNetNameByVfPciAddressTestCase(test.NoDBTestCase): exception.PciDeviceNotFoundById(self.pci_address)) net_name = utils.get_net_name_by_vf_pci_address(self.pci_address) self.assertIsNone(net_name) - self.mock_get_mac.called_once_with(self.pci_address) - self.mock_get_ifname.called_once_with(self.pci_address) + self.mock_get_mac.assert_called_once_with(self.pci_address) + self.mock_get_ifname.assert_called_once_with(self.pci_address) diff --git a/nova/tests/unit/virt/libvirt/test_driver.py b/nova/tests/unit/virt/libvirt/test_driver.py index a3287ceed953..f3b946d40d5a 100644 --- a/nova/tests/unit/virt/libvirt/test_driver.py +++ b/nova/tests/unit/virt/libvirt/test_driver.py @@ -7600,8 +7600,7 @@ class LibvirtConnTestCase(test.NoDBTestCase, drvr._disconnect_volume(self.context, connection_info, instance, encryption=encryption) drvr._host.delete_secret.assert_not_called() - mock_encryptor.detach_volume.called_once_with(self.context, - **encryption) + mock_encryptor.detach_volume.assert_called_once_with(**encryption) @mock.patch.object(libvirt_driver.LibvirtDriver, '_detach_encryptor') @mock.patch('nova.objects.InstanceList.get_uuids_by_host') @@ -12459,9 +12458,9 @@ class LibvirtConnTestCase(test.NoDBTestCase, self.assertEqual(info[1]['over_committed_disk_size'], 18146236825) vdmock.XMLDesc.assert_called_once_with(0) - mock_qemu_img_info.called_once_with('/test/disk.local') - mock_stat.called_once_with('/test/disk') - mock_get_size.called_once_with('/test/disk') + mock_qemu_img_info.assert_called_once_with('/test/disk.local') + mock_stat.assert_called_once_with('/test/disk') + mock_get_size.assert_called_once_with('/test/disk') def test_post_live_migration(self): vol1_conn_info = {'data': {'test_data': mock.sentinel.vol1}, @@ -15159,8 +15158,8 @@ class LibvirtConnTestCase(test.NoDBTestCase, "rxvlan", "txvlan"] } self.assertEqual(expect_vf, actualvf) - mock_get_net_name.called_once_with(parent_address) - mock_dev_lookup.called_once_with(dev_name) + mock_get_net_name.assert_called_once_with(parent_address) + mock_dev_lookup.assert_called_once_with(dev_name) def test_get_pcidev_info(self): self.stub_out('nova.virt.libvirt.host.Host.device_lookup_by_name', @@ -17118,7 +17117,7 @@ class LibvirtConnTestCase(test.NoDBTestCase, self.assertRaises(test.TestingException, drvr._cleanup_failed_start, None, None, None, None, guest, True) - mock_cleanup.called_once_with(None, None, network_info=None, + mock_cleanup.assert_called_once_with(None, None, network_info=None, block_device_info=None, destroy_disks=True) self.assertTrue(guest.poweroff.called) @@ -19366,7 +19365,9 @@ class LibvirtDriverTestCase(test.NoDBTestCase, TraitsComparisonMixin): self.context, ins_ref, _fake_network_info(self, 1)) mock_get_path.assert_called_once_with(ins_ref) self.assertFalse(mock_remove.called) - mock_rmtree.called_once_with('/fake/inst') + self.assertEqual(5, mock_rmtree.call_count) + mock_rmtree.assert_has_calls([mock.call('/fake/inst_resize', + ignore_errors=True)] * 5) def test_get_instance_disk_info_exception(self): instance = self._create_instance() diff --git a/nova/tests/unit/virt/libvirt/test_vif.py b/nova/tests/unit/virt/libvirt/test_vif.py index 9191577873cb..ccf317e6480c 100644 --- a/nova/tests/unit/virt/libvirt/test_vif.py +++ b/nova/tests/unit/virt/libvirt/test_vif.py @@ -1048,7 +1048,7 @@ class LibvirtVifTestCase(test.NoDBTestCase): 'tap', run_as_root=True, check_exit_code=[0, 2, 254]), mock.call('ip', 'link', 'set', 'tap-xxx-yyy-zzz', 'up', run_as_root=True, check_exit_code=[0, 2, 254])]) - mock_plug_contrail.called_once_with( + mock_plug_contrail.assert_called_once_with( instance.project_id, instance.uuid, instance.display_name, self.vif_vrouter['id'], self.vif_vrouter['network']['id'], 'NovaVMPort', self.vif_vrouter['devname'], @@ -1071,7 +1071,7 @@ class LibvirtVifTestCase(test.NoDBTestCase): mock_create_tap_dev.assert_called_once_with('tap-xxx-yyy-zzz', multiqueue=True) - mock_plug_contrail.called_once_with( + mock_plug_contrail.assert_called_once_with( instance.project_id, instance.uuid, instance.display_name, self.vif_vrouter['id'], self.vif_vrouter['network']['id'], 'NovaVMPort', self.vif_vrouter['devname'],