def test_integers(self): b = Backoff(min_ms=100, max_ms=10000, factor=2) self.assertEqual(b.duration(), to_seconds(100.0)) self.assertEqual(b.duration(), to_seconds(200.0)) self.assertEqual(b.duration(), to_seconds(400.0)) b.reset() self.assertEqual(b.duration(), to_seconds(100.0))
def test_factor(self): b = Backoff(min_ms=100, max_ms=10000, factor=1.5) self.assertEqual(b.duration(), to_seconds(100.0)) self.assertEqual(b.duration(), to_seconds(150.0)) self.assertEqual(b.duration(), to_seconds(225.0)) b.reset() self.assertEqual(b.duration(), to_seconds(100.0))
def test_get_attempt(self): self.assertEqual(self.b.attempt(), 0) self.assertEqual(self.b.duration(), to_seconds(100.0)) self.assertEqual(self.b.attempt(), 1) self.assertEqual(self.b.duration(), to_seconds(200.0)) self.assertEqual(self.b.attempt(), 2) self.assertEqual(self.b.duration(), to_seconds(400.0)) self.assertEqual(self.b.attempt(), 3) self.b.reset() self.assertEqual(self.b.attempt(), 0) self.assertEqual(self.b.duration(), to_seconds(100.0)) self.assertEqual(self.b.attempt(), 1)
def test_jitter(self): b = Backoff(min_ms=100.0, max_ms=10000.0, factor=2.0, jitter=True) self.assertEqual(b.duration(), to_seconds(100.0)) self.assert_between(b.duration(), to_seconds(100.0), to_seconds(200.0)) self.assert_between(b.duration(), to_seconds(100.0), to_seconds(400.0)) b.reset() self.assertEqual(b.duration(), to_seconds(100.0))
def test_for_attempt(self): self.assertEqual(self.b.for_attempt(0), to_seconds(100.0)) self.assertEqual(self.b.for_attempt(1), to_seconds(200.0)) self.assertEqual(self.b.for_attempt(2), to_seconds(400.0)) self.b.reset() self.assertEqual(self.b.for_attempt(0), to_seconds(100.0))
def test_defaults(self): self.assertEqual(self.b.duration(), to_seconds(100.0)) self.assertEqual(self.b.duration(), to_seconds(200.0)) self.assertEqual(self.b.duration(), to_seconds(400.0)) self.b.reset() self.assertEqual(self.b.duration(), to_seconds(100.0))