File: test_limit_granularities.py

package info (click to toggle)
python-limits 4.4.1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,064 kB
  • sloc: python: 7,833; makefile: 162; sh: 59
file content (28 lines) | stat: -rw-r--r-- 1,455 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from __future__ import annotations

from limits import limits


class TestGranularity:
    def test_seconds_value(self):
        assert limits.RateLimitItemPerSecond(1).get_expiry() == 1
        assert limits.RateLimitItemPerMinute(1).get_expiry() == 60
        assert limits.RateLimitItemPerHour(1).get_expiry() == 60 * 60
        assert limits.RateLimitItemPerDay(1).get_expiry() == 60 * 60 * 24
        assert limits.RateLimitItemPerMonth(1).get_expiry() == 60 * 60 * 24 * 30
        assert limits.RateLimitItemPerYear(1).get_expiry() == 60 * 60 * 24 * 30 * 12

    def test_representation(self):
        assert "1 per 1 second" in str(limits.RateLimitItemPerSecond(1))
        assert "1 per 1 minute" in str(limits.RateLimitItemPerMinute(1))
        assert "1 per 1 hour" in str(limits.RateLimitItemPerHour(1))
        assert "1 per 1 day" in str(limits.RateLimitItemPerDay(1))
        assert "1 per 1 month" in str(limits.RateLimitItemPerMonth(1))
        assert "1 per 1 year" in str(limits.RateLimitItemPerYear(1))

    def test_comparison(self):
        assert limits.RateLimitItemPerSecond(1) < limits.RateLimitItemPerMinute(1)
        assert limits.RateLimitItemPerMinute(1) < limits.RateLimitItemPerHour(1)
        assert limits.RateLimitItemPerHour(1) < limits.RateLimitItemPerDay(1)
        assert limits.RateLimitItemPerDay(1) < limits.RateLimitItemPerMonth(1)
        assert limits.RateLimitItemPerMonth(1) < limits.RateLimitItemPerYear(1)