def test_fixed_window(self): storage = MemoryStorage() limiter = FixedWindowRateLimiter(storage) with hiro.Timeline().freeze() as timeline: start = int(time.time()) limit = PER_SECOND(10, 2) self.assertTrue(all([limiter.hit(limit) for _ in range(0,10)])) timeline.forward(1) self.assertFalse(limiter.hit(limit)) self.assertEqual(limiter.get_window_stats(limit)[1], 0) self.assertEqual(limiter.get_window_stats(limit)[0], start + 2) timeline.forward(1) self.assertEqual(limiter.get_window_stats(limit)[1], 10) self.assertTrue(limiter.hit(limit))