def test_schedule_no_max(self): base_delay = 2 max_delay = 100 test_iter = 10000 policy = ExponentialReconnectionPolicy(base_delay=base_delay, max_delay=max_delay, max_attempts=None) sched_slice = list(islice(policy.new_schedule(), 0, test_iter)) self.assertEqual(sched_slice[0], base_delay) self.assertEqual(sched_slice[-1], max_delay) self.assertEqual(len(sched_slice), test_iter)
def test_schedule(self): policy = ExponentialReconnectionPolicy(base_delay=2, max_delay=100, max_attempts=None) i=0; for delay in policy.new_schedule(): i += 1 if i > 10000: break; self.assertEqual(i, 10001) policy = ExponentialReconnectionPolicy(base_delay=2, max_delay=100, max_attempts=64) schedule = list(policy.new_schedule()) self.assertEqual(len(schedule), 64) for i, delay in enumerate(schedule): if i == 0: self.assertEqual(delay, 2) elif i < 6: self.assertEqual(delay, schedule[i - 1] * 2) else: self.assertEqual(delay, 100)
def test_schedule(self): policy = ExponentialReconnectionPolicy(base_delay=2, max_delay=100) schedule = list(policy.new_schedule()) self.assertEqual(len(schedule), 64) for i, delay in enumerate(schedule): if i == 0: self.assertEqual(delay, 2) elif i < 6: self.assertEqual(delay, schedule[i - 1] * 2) else: self.assertEqual(delay, 100)
def test_schedule_with_max(self): base_delay = 2 max_delay = 100 max_attempts = 64 policy = ExponentialReconnectionPolicy(base_delay=base_delay, max_delay=max_delay, max_attempts=max_attempts) schedule = list(policy.new_schedule()) self.assertEqual(len(schedule), max_attempts) for i, delay in enumerate(schedule): if i == 0: self.assertEqual(delay, base_delay) elif i < 6: self.assertEqual(delay, schedule[i - 1] * 2) else: self.assertEqual(delay, max_delay)