From f3c1ed28d20065e63eda9497081cc495a743d628 Mon Sep 17 00:00:00 2001 From: Alan Bishop Date: Mon, 15 Aug 2022 15:10:23 -0700 Subject: [PATCH] Veritas: Eliminate timed delays in unit tests Eliminate unit test delays by using "zero interval" looping calls. Change-Id: I3f7a16e155fd6d08fd348a7752b12f7966d7ab4d --- cinder/tests/unit/utils.py | 9 +++++++-- .../volume/drivers/veritas_access/test_veritas_iscsi.py | 4 +++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/cinder/tests/unit/utils.py b/cinder/tests/unit/utils.py index 978703637db..955e4b93770 100644 --- a/cinder/tests/unit/utils.py +++ b/cinder/tests/unit/utils.py @@ -434,8 +434,13 @@ class ZeroIntervalWithTimeoutLoopingCall( loopingcall.FixedIntervalWithTimeoutLoopingCall): def start(self, interval, initial_delay=None, stop_on_exception=True, timeout=0): - return super(ZeroIntervalWithTimeoutLoopingCall, self).start( - 0, 0, stop_on_exception, timeout) + + result = None + with mock.patch('time.time', side_effect=[0, (timeout + 1)]): + result = super(ZeroIntervalWithTimeoutLoopingCall, self).start( + 0, 0, stop_on_exception, timeout) + + return result def replace_obj_loader(testcase, obj): diff --git a/cinder/tests/unit/volume/drivers/veritas_access/test_veritas_iscsi.py b/cinder/tests/unit/volume/drivers/veritas_access/test_veritas_iscsi.py index a0aa4090026..a175487724e 100644 --- a/cinder/tests/unit/volume/drivers/veritas_access/test_veritas_iscsi.py +++ b/cinder/tests/unit/volume/drivers/veritas_access/test_veritas_iscsi.py @@ -25,6 +25,7 @@ import requests from cinder import context from cinder import exception from cinder.tests.unit import test +from cinder.tests.unit import utils as test_utils from cinder.volume import configuration as conf from cinder.volume.drivers.veritas_access import veritas_iscsi @@ -528,6 +529,8 @@ class ACCESSIscsiDriverTestCase(test.TestCase): self._driver.initialize_connection(self.volume, self.connector) self.assertEqual(1, self._driver._vrts_get_iscsi_properties.call_count) + @mock.patch('oslo_service.loopingcall.FixedIntervalWithTimeoutLoopingCall', + new=test_utils.ZeroIntervalWithTimeoutLoopingCall) def test_initialize_connection_negative(self): self.mock_object(self._driver, '_access_api') self.mock_object(self._driver, '_get_vrts_lun_list') @@ -538,7 +541,6 @@ class ACCESSIscsiDriverTestCase(test.TestCase): lun['lun_name'] = 'fakelun' lun['target_name'] = 'iqn.2017-02.com.veritas:faketarget' lun_list = {'output': {'output': {'luns': [lun]}}} - self._driver.LUN_FOUND_INTERVAL = 5 self._driver._get_vrts_lun_list.return_value = lun_list self._driver._access_api.return_value = True