def test_process_success(self): breaker = Breaker(service='test', threshold=1, reenable_after=1) # compare against an stale timestamp breaker._last_open = time.time() - 2 self.assertTrue(breaker.half_open) # an success should reset the breaker breaker.process_success() self.assertIsNone(breaker.last_open) self.assertFalse(breaker.half_open) self.assertEqual(len(breaker._errors), 0)
def test_breaker_state_after_reenable_period(self): breaker = Breaker(service='test', reenable_after=10, threshold=5) breaker._last_open = int(time.time()) - 11 self.assertTrue(breaker.half_open) self.assertFalse(breaker.open)