don't allow calling get_usage_since unless track_daily_usage was on
This commit is contained in:
parent
c2c0396b20
commit
4ddf79211d
2
rrl.py
2
rrl.py
@ -108,6 +108,8 @@ class RateLimiter:
|
|||||||
start: datetime.date,
|
start: datetime.date,
|
||||||
end: typing.Optional[datetime.date] = None,
|
end: typing.Optional[datetime.date] = None,
|
||||||
) -> typing.List[DailyUsage]:
|
) -> typing.List[DailyUsage]:
|
||||||
|
if not self.track_daily_usage:
|
||||||
|
raise RuntimeError("track_daily_usage is not enabled")
|
||||||
if not end:
|
if not end:
|
||||||
end = datetime.date.today()
|
end = datetime.date.today()
|
||||||
days = []
|
days = []
|
||||||
|
@ -110,3 +110,20 @@ def test_get_daily_usage():
|
|||||||
assert usage[9] == DailyUsage(datetime.date(2020, 1, 10), 0)
|
assert usage[9] == DailyUsage(datetime.date(2020, 1, 10), 0)
|
||||||
assert usage[14] == DailyUsage(datetime.date(2020, 1, 15), 0)
|
assert usage[14] == DailyUsage(datetime.date(2020, 1, 15), 0)
|
||||||
assert len(usage) == 15
|
assert len(usage) == 15
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_daily_usage_untracked():
|
||||||
|
redis.flushall()
|
||||||
|
rl = RateLimiter(
|
||||||
|
tiers=[unlimited_tier], use_redis_time=False, track_daily_usage=False
|
||||||
|
)
|
||||||
|
|
||||||
|
# make Nth day have N calls
|
||||||
|
for n in range(1, 10):
|
||||||
|
with freeze_time(f"2020-01-0{n}"):
|
||||||
|
for _ in range(n):
|
||||||
|
rl.check_limit("zone", "test-key", unlimited_tier.name)
|
||||||
|
|
||||||
|
# values would be incorrect (likely zero), warn the caller
|
||||||
|
with pytest.raises(RuntimeError):
|
||||||
|
rl.get_usage_since("zone", "test-key", datetime.date(2020, 1, 1))
|
||||||
|
Loading…
Reference in New Issue
Block a user