Merge "Use system random where applicable"
This commit is contained in:
commit
5a962e4ac7
@ -75,6 +75,7 @@ class BackOffLoopingCall(loopingcall.LoopingCallBase):
|
||||
timeout.
|
||||
"""
|
||||
|
||||
_RNG = random.SystemRandom()
|
||||
_KIND = 'Dynamic backoff interval looping call'
|
||||
_RUN_ONLY_ONE_MESSAGE = ("A dynamic backoff interval looping call can"
|
||||
" only run one function at a time")
|
||||
@ -94,7 +95,7 @@ class BackOffLoopingCall(loopingcall.LoopingCallBase):
|
||||
self._interval = starting_interval
|
||||
|
||||
def _idle_for(success, _elapsed):
|
||||
random_jitter = random.gauss(jitter, 0.1)
|
||||
random_jitter = self._RNG.gauss(jitter, 0.1)
|
||||
if success:
|
||||
# Reset error state now that it didn't error...
|
||||
self._interval = starting_interval
|
||||
|
@ -21,7 +21,7 @@ from ironic_python_agent import backoff
|
||||
|
||||
|
||||
class TestBackOffLoopingCall(unittest.TestCase):
|
||||
@mock.patch('random.gauss')
|
||||
@mock.patch('random.SystemRandom.gauss')
|
||||
@mock.patch('eventlet.greenthread.sleep')
|
||||
def test_exponential_backoff(self, sleep_mock, random_mock):
|
||||
def false():
|
||||
@ -45,7 +45,7 @@ class TestBackOffLoopingCall(unittest.TestCase):
|
||||
mock.call(109.95116277760006)]
|
||||
self.assertEqual(expected_times, sleep_mock.call_args_list)
|
||||
|
||||
@mock.patch('random.gauss')
|
||||
@mock.patch('random.SystemRandom.gauss')
|
||||
@mock.patch('eventlet.greenthread.sleep')
|
||||
def test_no_backoff(self, sleep_mock, random_mock):
|
||||
random_mock.return_value = 1
|
||||
@ -60,7 +60,7 @@ class TestBackOffLoopingCall(unittest.TestCase):
|
||||
self.assertEqual(expected_times, sleep_mock.call_args_list)
|
||||
self.assertTrue(retvalue, 'return value')
|
||||
|
||||
@mock.patch('random.gauss')
|
||||
@mock.patch('random.SystemRandom.gauss')
|
||||
@mock.patch('eventlet.greenthread.sleep')
|
||||
def test_no_sleep(self, sleep_mock, random_mock):
|
||||
# Any call that executes properly the first time shouldn't sleep
|
||||
@ -73,7 +73,7 @@ class TestBackOffLoopingCall(unittest.TestCase):
|
||||
self.assertFalse(sleep_mock.called)
|
||||
self.assertTrue(retvalue, 'return value')
|
||||
|
||||
@mock.patch('random.gauss')
|
||||
@mock.patch('random.SystemRandom.gauss')
|
||||
@mock.patch('eventlet.greenthread.sleep')
|
||||
def test_max_interval(self, sleep_mock, random_mock):
|
||||
def false():
|
||||
|
Loading…
x
Reference in New Issue
Block a user