add TODO and tweak test #455
This commit is contained in:
@@ -528,6 +528,9 @@ class ExponentialReconnectionPolicy(ReconnectionPolicy):
|
||||
a set maximum delay.
|
||||
"""
|
||||
|
||||
# TODO: max_attempts is 64 to preserve legacy default behavior
|
||||
# consider changing to None in major release to prevent the policy
|
||||
# giving up forever
|
||||
def __init__(self, base_delay, max_delay, max_attempts=64):
|
||||
"""
|
||||
`base_delay` and `max_delay` should be in floating point units of
|
||||
|
@@ -816,25 +816,30 @@ class ExponentialReconnectionPolicyTest(unittest.TestCase):
|
||||
self.assertRaises(ValueError, ExponentialReconnectionPolicy, 9000, 1)
|
||||
self.assertRaises(ValueError, ExponentialReconnectionPolicy, 1, 2,-1)
|
||||
|
||||
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)
|
||||
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)
|
||||
|
||||
policy = ExponentialReconnectionPolicy(base_delay=2, max_delay=100, max_attempts=64)
|
||||
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), 64)
|
||||
self.assertEqual(len(schedule), max_attempts)
|
||||
for i, delay in enumerate(schedule):
|
||||
if i == 0:
|
||||
self.assertEqual(delay, 2)
|
||||
self.assertEqual(delay, base_delay)
|
||||
elif i < 6:
|
||||
self.assertEqual(delay, schedule[i - 1] * 2)
|
||||
else:
|
||||
self.assertEqual(delay, 100)
|
||||
self.assertEqual(delay, max_delay)
|
||||
|
||||
ONE = ConsistencyLevel.ONE
|
||||
|
||||
|
Reference in New Issue
Block a user