]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commitdiff
Trim 50s from huawei ISCSIDriver unit tests
authorTom Barron <tpb@dyncloud.net>
Sun, 21 Feb 2016 12:00:54 +0000 (07:00 -0500)
committerTom Barron <tpb@dyncloud.net>
Tue, 1 Mar 2016 15:24:42 +0000 (10:24 -0500)
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

index ce58d7dd931ade7c29479968961534940bdb059c..0b2fa4c5bfcec897153bb886da804507a237757c 100644 (file)
@@ -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,