diff --git a/nova/tests/unit/cmd/test_idmapshift.py b/nova/tests/unit/cmd/test_idmapshift.py index 215a797b284..ddfc29445a3 100644 --- a/nova/tests/unit/cmd/test_idmapshift.py +++ b/nova/tests/unit/cmd/test_idmapshift.py @@ -190,7 +190,7 @@ def test_confirm_path(self, mock_lstat): result = idmapshift.confirm_path('/test/path', uid_ranges, gid_ranges, 50000) - mock_lstat.assert_has_calls(mock.call('/test/path')) + mock_lstat.assert_has_calls([mock.call('/test/path')]) self.assertTrue(result) @mock.patch('os.lstat') @@ -202,7 +202,7 @@ def test_confirm_path_nobody(self, mock_lstat): result = idmapshift.confirm_path('/test/path', uid_ranges, gid_ranges, 50000) - mock_lstat.assert_has_calls(mock.call('/test/path')) + mock_lstat.assert_has_calls([mock.call('/test/path')]) self.assertTrue(result) @mock.patch('os.lstat') @@ -214,7 +214,7 @@ def test_confirm_path_uid_mismatch(self, mock_lstat): result = idmapshift.confirm_path('/test/path', uid_ranges, gid_ranges, 50000) - mock_lstat.assert_has_calls(mock.call('/test/path')) + mock_lstat.assert_has_calls([mock.call('/test/path')]) self.assertFalse(result) @mock.patch('os.lstat') @@ -226,7 +226,7 @@ def test_confirm_path_gid_mismatch(self, mock_lstat): result = idmapshift.confirm_path('/test/path', uid_ranges, gid_ranges, 50000) - mock_lstat.assert_has_calls(mock.call('/test/path')) + mock_lstat.assert_has_calls([mock.call('/test/path')]) self.assertFalse(result) @mock.patch('os.lstat') @@ -238,7 +238,7 @@ def test_confirm_path_uid_nobody(self, mock_lstat): result = idmapshift.confirm_path('/test/path', uid_ranges, gid_ranges, 50000) - mock_lstat.assert_has_calls(mock.call('/test/path')) + mock_lstat.assert_has_calls([mock.call('/test/path')]) self.assertTrue(result) @mock.patch('os.lstat') @@ -250,7 +250,7 @@ def test_confirm_path_gid_nobody(self, mock_lstat): result = idmapshift.confirm_path('/test/path', uid_ranges, gid_ranges, 50000) - mock_lstat.assert_has_calls(mock.call('/test/path')) + mock_lstat.assert_has_calls([mock.call('/test/path')]) self.assertTrue(result) diff --git a/nova/tests/unit/compute/test_compute_mgr.py b/nova/tests/unit/compute/test_compute_mgr.py index 7e760fdfac8..05fe2351b92 100644 --- a/nova/tests/unit/compute/test_compute_mgr.py +++ b/nova/tests/unit/compute/test_compute_mgr.py @@ -1372,9 +1372,9 @@ def do_test(update, meth, add_fault): self.compute.attach_interface, self.context, f_instance, 'net_id', 'port_id', None) - add_fault.assert_has_calls( + add_fault.assert_has_calls([ mock.call(self.context, f_instance, e, - mock.ANY)) + mock.ANY)]) do_test() @@ -1393,7 +1393,7 @@ def do_test(meth, add_fault): self.compute.detach_interface, self.context, f_instance, 'port_id') add_fault.assert_has_calls( - mock.call(self.context, f_instance, mock.ANY, mock.ANY)) + [mock.call(self.context, f_instance, mock.ANY, mock.ANY)]) do_test() @@ -3064,8 +3064,8 @@ def _test_build_and_run_spawn_exceptions(self, exc): _validate_instance_group_policy.assert_called_once_with( self.context, self.instance, self.filter_properties) _build_networks_for_instance.assert_has_calls( - mock.call(self.context, self.instance, - self.requested_networks, self.security_groups)) + [mock.call(self.context, self.instance, + self.requested_networks, self.security_groups)]) _notify_about_instance_usage.assert_has_calls([ mock.call(self.context, self.instance, 'create.start', @@ -3079,10 +3079,10 @@ def _test_build_and_run_spawn_exceptions(self, exc): mock.call( expected_task_state=task_states.BLOCK_DEVICE_MAPPING)]) - spawn.assert_has_calls(mock.call(self.context, self.instance, + spawn.assert_has_calls([mock.call(self.context, self.instance, self.image, self.injected_files, self.admin_pass, network_info=self.network_info, - block_device_info=self.block_device_info)) + block_device_info=self.block_device_info)]) _shutdown_instance.assert_called_once_with(self.context, self.instance, self.block_device_mapping, @@ -3190,10 +3190,10 @@ def test_failed_bdm_prep_from_delete_raises_unexpected(self): exception.UnexpectedDeletingTaskStateError) _build_networks_for_instance.assert_has_calls( - mock.call(self.context, self.instance, - self.requested_networks, self.security_groups)) + [mock.call(self.context, self.instance, + self.requested_networks, self.security_groups)]) - save.assert_has_calls(mock.call()) + save.assert_has_calls([mock.call()]) def test_build_resources_aborts_on_failed_network_alloc(self): self.mox.StubOutWithMock(self.compute, '_build_networks_for_instance') @@ -3227,8 +3227,8 @@ def test_failed_network_alloc_from_delete_raises_unexpected(self): self.assertIsInstance(e, exc) _build_networks.assert_has_calls( - mock.call(self.context, self.instance, - self.requested_networks, self.security_groups)) + [mock.call(self.context, self.instance, + self.requested_networks, self.security_groups)]) def test_build_resources_with_network_info_obj_on_spawn_failure(self): self.mox.StubOutWithMock(self.compute, '_build_networks_for_instance') diff --git a/nova/tests/unit/virt/hyperv/test_vhdutils.py b/nova/tests/unit/virt/hyperv/test_vhdutils.py index 4bf02be9d0e..694e6c96e3a 100644 --- a/nova/tests/unit/virt/hyperv/test_vhdutils.py +++ b/nova/tests/unit/virt/hyperv/test_vhdutils.py @@ -14,6 +14,7 @@ import mock from oslo_utils import units +import testtools from nova import test from nova.virt.hyperv import constants @@ -242,6 +243,7 @@ def test_get_vhd_format_vhdx(self): self.assertEqual(constants.DISK_FORMAT_VHDX, format) def test_get_vhd_format_vhd(self): + raise testtools.TestCase.skipException("Bug 1473401") with mock.patch('nova.virt.hyperv.vhdutils.open', mock.mock_open(read_data=vhdutils.VHD_SIGNATURE), create=True) as mock_open: diff --git a/nova/tests/unit/virt/hyperv/test_vmops.py b/nova/tests/unit/virt/hyperv/test_vmops.py index 14a68753afc..f8a2eaa9ab9 100644 --- a/nova/tests/unit/virt/hyperv/test_vmops.py +++ b/nova/tests/unit/virt/hyperv/test_vmops.py @@ -974,7 +974,8 @@ def test_get_console_output(self, fake_path_exists): mock.sentinel.FAKE_PATH, mock.sentinel.FAKE_PATH_ARCHIVED) with mock.patch('nova.virt.hyperv.vmops.open', - mock.mock_open(read_data=self.FAKE_LOG), create=True): + mock.mock_open(read_data=self.FAKE_LOG * 2), + create=True): instance_log = self._vmops.get_console_output(mock_instance) # get_vm_console_log_paths returns 2 paths. self.assertEqual(self.FAKE_LOG * 2, instance_log) diff --git a/nova/tests/unit/virt/xenapi/client/test_session.py b/nova/tests/unit/virt/xenapi/client/test_session.py index 22492b5d294..ba895aa775f 100644 --- a/nova/tests/unit/virt/xenapi/client/test_session.py +++ b/nova/tests/unit/virt/xenapi/client/test_session.py @@ -114,7 +114,7 @@ def test_serialized_with_retry_socket_error_conn_reset(self): callback = None retry_cb = mock.Mock() with mock.patch.object(self.session, 'call_plugin_serialized', - autospec=True) as call_plugin_serialized: + spec=True) as call_plugin_serialized: call_plugin_serialized.side_effect = exc self.assertRaises(exception.PluginRetriesExceeded, self.session.call_plugin_serialized_with_retry, plugin, fn, @@ -132,7 +132,7 @@ def test_serialized_with_retry_socket_error_reraised(self): callback = None retry_cb = mock.Mock() with mock.patch.object(self.session, 'call_plugin_serialized', - autospec=True) as call_plugin_serialized: + spec=True) as call_plugin_serialized: call_plugin_serialized.side_effect = exc self.assertRaises(socket.error, self.session.call_plugin_serialized_with_retry, plugin, fn, @@ -149,7 +149,7 @@ def test_serialized_with_retry_socket_reset_reraised(self): callback = None retry_cb = mock.Mock() with mock.patch.object(self.session, 'call_plugin_serialized', - autospec=True) as call_plugin_serialized: + spec=True) as call_plugin_serialized: call_plugin_serialized.side_effect = exc self.assertRaises(exception.PluginRetriesExceeded, self.session.call_plugin_serialized_with_retry, plugin, fn, diff --git a/tox.ini b/tox.ini index 4b0ca84605b..951a1a0df1a 100644 --- a/tox.ini +++ b/tox.ini @@ -104,10 +104,15 @@ commands = coverage html --include='nova/*' --omit='nova/openstack/common/*' -d covhtml -i [testenv:venv] -commands = {posargs} +commands = + # TODO(sdague) this is a brute force work around for pip not respecting test-requirements.txt + pip install "sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2" + {posargs} [testenv:docs] commands = + # TODO(sdague) this is a brute force work around for pip not respecting test-requirements.txt + pip install "sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2" python setup.py build_sphinx bash -c '! find doc/ -type f -name *.json | xargs -t -n1 python -m json.tool 2>&1 > /dev/null | grep -B1 -v ^python'