From 9fb1808cd5c3964167c11473c548de062ce684e2 Mon Sep 17 00:00:00 2001 From: Tom Barron Date: Sun, 21 Feb 2016 07:00:54 -0500 Subject: [PATCH] Trim 50s from huawei ISCSIDriver unit tests The HuaweiISCSIDriver unit tests take almost a minute to run on my machine because several negative test cases wait for timeouts. This commit leverages the utility method introduced in [1] as well as the ZeroIntervalLoopingCall for mocks in the Huawei unit tests to reduce total execution time for this set of tests from about a minute to under 10s [1] c2166876d85b17872c6fe32916c6d0d1dc974847 Change-Id: If17466ebabc391ebca57667200de072ede3ecc0c --- cinder/tests/unit/test_huawei_drivers.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/cinder/tests/unit/test_huawei_drivers.py b/cinder/tests/unit/test_huawei_drivers.py index ce58d7dd9..0b2fa4c5b 100644 --- a/cinder/tests/unit/test_huawei_drivers.py +++ b/cinder/tests/unit/test_huawei_drivers.py @@ -25,11 +25,13 @@ from oslo_log import log as logging from cinder import exception from cinder import test +from cinder.tests.unit import utils from cinder.volume import configuration as conf from cinder.volume.drivers.huawei import constants from cinder.volume.drivers.huawei import fc_zone_helper from cinder.volume.drivers.huawei import huawei_conf from cinder.volume.drivers.huawei import huawei_driver +from cinder.volume.drivers.huawei import huawei_utils from cinder.volume.drivers.huawei import hypermetro from cinder.volume.drivers.huawei import replication from cinder.volume.drivers.huawei import rest_client @@ -2858,11 +2860,16 @@ class HuaweiISCSIDriverTestCase(test.TestCase): common_driver = replication.ReplicaCommonDriver(self.configuration, op) self.mock_object(replication.PairOp, 'get_replica_info', mock.Mock(return_value={'SECRESACCESS': access_ro})) + self.mock_object(huawei_utils.time, 'time', mock.Mock( + side_effect = utils.generate_timeout_series( + constants.DEFAULT_REPLICA_WAIT_TIMEOUT))) common_driver.wait_second_access(pair_id, access_ro) self.assertRaises(exception.VolumeBackendAPIException, common_driver.wait_second_access, pair_id, access_rw) + @mock.patch('oslo_service.loopingcall.FixedIntervalLoopingCall', + new=utils.ZeroIntervalLoopingCall) def test_wait_replica_ready(self): normal_status = { 'RUNNINGSTATUS': constants.REPLICA_RUNNING_STATUS_NORMAL, @@ -2921,11 +2928,19 @@ class HuaweiISCSIDriverTestCase(test.TestCase): @ddt.unpack def test_replication_enable_fail(self, mock_module, mock_func, mock_value): self.mock_object(mock_module, mock_func, mock_value) + self.mock_object(huawei_utils.time, 'time', mock.Mock( + side_effect = utils.generate_timeout_series( + constants.DEFAULT_REPLICA_WAIT_TIMEOUT))) + self.assertRaises( exception.VolumeBackendAPIException, self.driver.replication_enable, None, replication_volume) def test_replication_disable_fail(self): + self.mock_object(huawei_utils.time, 'time', mock.Mock( + side_effect = utils.generate_timeout_series( + constants.DEFAULT_REPLICA_WAIT_TIMEOUT))) + self.assertRaises( exception.VolumeBackendAPIException, self.driver.replication_disable, None, replication_volume) @@ -2982,6 +2997,10 @@ class HuaweiISCSIDriverTestCase(test.TestCase): mock.Mock( side_effect=exception.VolumeBackendAPIException(data="error"))) self.mock_object(mock_module, mock_func, mock_value) + self.mock_object(huawei_utils.time, 'time', mock.Mock( + side_effect = utils.generate_timeout_series( + constants.DEFAULT_REPLICA_WAIT_TIMEOUT))) + self.assertRaises( exception.VolumeBackendAPIException, self.driver.replication_failover, -- 2.45.2