mirror of
https://git.anonymousland.org/anonymousland/synapse-product.git
synced 2024-10-01 08:25:44 -04:00
Add type hints to TestRatelimiter
(#14885)
This commit is contained in:
parent
0ec12a3753
commit
8d90e5f200
1
changelog.d/14885.misc
Normal file
1
changelog.d/14885.misc
Normal file
@ -0,0 +1 @@
|
|||||||
|
Add missing type hints.
|
1
mypy.ini
1
mypy.ini
@ -33,7 +33,6 @@ exclude = (?x)
|
|||||||
|synapse/storage/schema/
|
|synapse/storage/schema/
|
||||||
|
|
||||||
|tests/api/test_auth.py
|
|tests/api/test_auth.py
|
||||||
|tests/api/test_ratelimiting.py
|
|
||||||
|tests/app/test_openid_listener.py
|
|tests/app/test_openid_listener.py
|
||||||
|tests/appservice/test_scheduler.py
|
|tests/appservice/test_scheduler.py
|
||||||
|tests/events/test_presence_router.py
|
|tests/events/test_presence_router.py
|
||||||
|
@ -8,7 +8,10 @@ from tests import unittest
|
|||||||
class TestRatelimiter(unittest.HomeserverTestCase):
|
class TestRatelimiter(unittest.HomeserverTestCase):
|
||||||
def test_allowed_via_can_do_action(self):
|
def test_allowed_via_can_do_action(self):
|
||||||
limiter = Ratelimiter(
|
limiter = Ratelimiter(
|
||||||
store=self.hs.get_datastores().main, clock=None, rate_hz=0.1, burst_count=1
|
store=self.hs.get_datastores().main,
|
||||||
|
clock=self.clock,
|
||||||
|
rate_hz=0.1,
|
||||||
|
burst_count=1,
|
||||||
)
|
)
|
||||||
allowed, time_allowed = self.get_success_or_raise(
|
allowed, time_allowed = self.get_success_or_raise(
|
||||||
limiter.can_do_action(None, key="test_id", _time_now_s=0)
|
limiter.can_do_action(None, key="test_id", _time_now_s=0)
|
||||||
@ -30,7 +33,7 @@ class TestRatelimiter(unittest.HomeserverTestCase):
|
|||||||
|
|
||||||
def test_allowed_appservice_ratelimited_via_can_requester_do_action(self):
|
def test_allowed_appservice_ratelimited_via_can_requester_do_action(self):
|
||||||
appservice = ApplicationService(
|
appservice = ApplicationService(
|
||||||
None,
|
token="fake_token",
|
||||||
id="foo",
|
id="foo",
|
||||||
rate_limited=True,
|
rate_limited=True,
|
||||||
sender="@as:example.com",
|
sender="@as:example.com",
|
||||||
@ -38,7 +41,10 @@ class TestRatelimiter(unittest.HomeserverTestCase):
|
|||||||
as_requester = create_requester("@user:example.com", app_service=appservice)
|
as_requester = create_requester("@user:example.com", app_service=appservice)
|
||||||
|
|
||||||
limiter = Ratelimiter(
|
limiter = Ratelimiter(
|
||||||
store=self.hs.get_datastores().main, clock=None, rate_hz=0.1, burst_count=1
|
store=self.hs.get_datastores().main,
|
||||||
|
clock=self.clock,
|
||||||
|
rate_hz=0.1,
|
||||||
|
burst_count=1,
|
||||||
)
|
)
|
||||||
allowed, time_allowed = self.get_success_or_raise(
|
allowed, time_allowed = self.get_success_or_raise(
|
||||||
limiter.can_do_action(as_requester, _time_now_s=0)
|
limiter.can_do_action(as_requester, _time_now_s=0)
|
||||||
@ -60,7 +66,7 @@ class TestRatelimiter(unittest.HomeserverTestCase):
|
|||||||
|
|
||||||
def test_allowed_appservice_via_can_requester_do_action(self):
|
def test_allowed_appservice_via_can_requester_do_action(self):
|
||||||
appservice = ApplicationService(
|
appservice = ApplicationService(
|
||||||
None,
|
token="fake_token",
|
||||||
id="foo",
|
id="foo",
|
||||||
rate_limited=False,
|
rate_limited=False,
|
||||||
sender="@as:example.com",
|
sender="@as:example.com",
|
||||||
@ -68,7 +74,10 @@ class TestRatelimiter(unittest.HomeserverTestCase):
|
|||||||
as_requester = create_requester("@user:example.com", app_service=appservice)
|
as_requester = create_requester("@user:example.com", app_service=appservice)
|
||||||
|
|
||||||
limiter = Ratelimiter(
|
limiter = Ratelimiter(
|
||||||
store=self.hs.get_datastores().main, clock=None, rate_hz=0.1, burst_count=1
|
store=self.hs.get_datastores().main,
|
||||||
|
clock=self.clock,
|
||||||
|
rate_hz=0.1,
|
||||||
|
burst_count=1,
|
||||||
)
|
)
|
||||||
allowed, time_allowed = self.get_success_or_raise(
|
allowed, time_allowed = self.get_success_or_raise(
|
||||||
limiter.can_do_action(as_requester, _time_now_s=0)
|
limiter.can_do_action(as_requester, _time_now_s=0)
|
||||||
@ -90,7 +99,10 @@ class TestRatelimiter(unittest.HomeserverTestCase):
|
|||||||
|
|
||||||
def test_allowed_via_ratelimit(self):
|
def test_allowed_via_ratelimit(self):
|
||||||
limiter = Ratelimiter(
|
limiter = Ratelimiter(
|
||||||
store=self.hs.get_datastores().main, clock=None, rate_hz=0.1, burst_count=1
|
store=self.hs.get_datastores().main,
|
||||||
|
clock=self.clock,
|
||||||
|
rate_hz=0.1,
|
||||||
|
burst_count=1,
|
||||||
)
|
)
|
||||||
|
|
||||||
# Shouldn't raise
|
# Shouldn't raise
|
||||||
@ -114,7 +126,10 @@ class TestRatelimiter(unittest.HomeserverTestCase):
|
|||||||
"""
|
"""
|
||||||
# Create a Ratelimiter with a very low allowed rate_hz and burst_count
|
# Create a Ratelimiter with a very low allowed rate_hz and burst_count
|
||||||
limiter = Ratelimiter(
|
limiter = Ratelimiter(
|
||||||
store=self.hs.get_datastores().main, clock=None, rate_hz=0.1, burst_count=1
|
store=self.hs.get_datastores().main,
|
||||||
|
clock=self.clock,
|
||||||
|
rate_hz=0.1,
|
||||||
|
burst_count=1,
|
||||||
)
|
)
|
||||||
|
|
||||||
# First attempt should be allowed
|
# First attempt should be allowed
|
||||||
@ -160,7 +175,10 @@ class TestRatelimiter(unittest.HomeserverTestCase):
|
|||||||
"""
|
"""
|
||||||
# Create a Ratelimiter with a very low allowed rate_hz and burst_count
|
# Create a Ratelimiter with a very low allowed rate_hz and burst_count
|
||||||
limiter = Ratelimiter(
|
limiter = Ratelimiter(
|
||||||
store=self.hs.get_datastores().main, clock=None, rate_hz=0.1, burst_count=1
|
store=self.hs.get_datastores().main,
|
||||||
|
clock=self.clock,
|
||||||
|
rate_hz=0.1,
|
||||||
|
burst_count=1,
|
||||||
)
|
)
|
||||||
|
|
||||||
# First attempt should be allowed
|
# First attempt should be allowed
|
||||||
@ -188,7 +206,10 @@ class TestRatelimiter(unittest.HomeserverTestCase):
|
|||||||
|
|
||||||
def test_pruning(self):
|
def test_pruning(self):
|
||||||
limiter = Ratelimiter(
|
limiter = Ratelimiter(
|
||||||
store=self.hs.get_datastores().main, clock=None, rate_hz=0.1, burst_count=1
|
store=self.hs.get_datastores().main,
|
||||||
|
clock=self.clock,
|
||||||
|
rate_hz=0.1,
|
||||||
|
burst_count=1,
|
||||||
)
|
)
|
||||||
self.get_success_or_raise(
|
self.get_success_or_raise(
|
||||||
limiter.can_do_action(None, key="test_id_1", _time_now_s=0)
|
limiter.can_do_action(None, key="test_id_1", _time_now_s=0)
|
||||||
@ -223,7 +244,7 @@ class TestRatelimiter(unittest.HomeserverTestCase):
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
limiter = Ratelimiter(store=store, clock=None, rate_hz=0.1, burst_count=1)
|
limiter = Ratelimiter(store=store, clock=self.clock, rate_hz=0.1, burst_count=1)
|
||||||
|
|
||||||
# Shouldn't raise
|
# Shouldn't raise
|
||||||
for _ in range(20):
|
for _ in range(20):
|
||||||
@ -231,7 +252,10 @@ class TestRatelimiter(unittest.HomeserverTestCase):
|
|||||||
|
|
||||||
def test_multiple_actions(self):
|
def test_multiple_actions(self):
|
||||||
limiter = Ratelimiter(
|
limiter = Ratelimiter(
|
||||||
store=self.hs.get_datastores().main, clock=None, rate_hz=0.1, burst_count=3
|
store=self.hs.get_datastores().main,
|
||||||
|
clock=self.clock,
|
||||||
|
rate_hz=0.1,
|
||||||
|
burst_count=3,
|
||||||
)
|
)
|
||||||
# Test that 4 actions aren't allowed with a maximum burst of 3.
|
# Test that 4 actions aren't allowed with a maximum burst of 3.
|
||||||
allowed, time_allowed = self.get_success_or_raise(
|
allowed, time_allowed = self.get_success_or_raise(
|
||||||
@ -295,7 +319,10 @@ class TestRatelimiter(unittest.HomeserverTestCase):
|
|||||||
extra tokens by timing requests.
|
extra tokens by timing requests.
|
||||||
"""
|
"""
|
||||||
limiter = Ratelimiter(
|
limiter = Ratelimiter(
|
||||||
store=self.hs.get_datastores().main, clock=None, rate_hz=0.1, burst_count=3
|
store=self.hs.get_datastores().main,
|
||||||
|
clock=self.clock,
|
||||||
|
rate_hz=0.1,
|
||||||
|
burst_count=3,
|
||||||
)
|
)
|
||||||
|
|
||||||
def consume_at(time: float) -> bool:
|
def consume_at(time: float) -> bool:
|
||||||
@ -317,7 +344,10 @@ class TestRatelimiter(unittest.HomeserverTestCase):
|
|||||||
|
|
||||||
def test_record_action_which_doesnt_fill_bucket(self) -> None:
|
def test_record_action_which_doesnt_fill_bucket(self) -> None:
|
||||||
limiter = Ratelimiter(
|
limiter = Ratelimiter(
|
||||||
store=self.hs.get_datastores().main, clock=None, rate_hz=0.1, burst_count=3
|
store=self.hs.get_datastores().main,
|
||||||
|
clock=self.clock,
|
||||||
|
rate_hz=0.1,
|
||||||
|
burst_count=3,
|
||||||
)
|
)
|
||||||
|
|
||||||
# Observe two actions, leaving room in the bucket for one more.
|
# Observe two actions, leaving room in the bucket for one more.
|
||||||
@ -337,7 +367,10 @@ class TestRatelimiter(unittest.HomeserverTestCase):
|
|||||||
|
|
||||||
def test_record_action_which_fills_bucket(self) -> None:
|
def test_record_action_which_fills_bucket(self) -> None:
|
||||||
limiter = Ratelimiter(
|
limiter = Ratelimiter(
|
||||||
store=self.hs.get_datastores().main, clock=None, rate_hz=0.1, burst_count=3
|
store=self.hs.get_datastores().main,
|
||||||
|
clock=self.clock,
|
||||||
|
rate_hz=0.1,
|
||||||
|
burst_count=3,
|
||||||
)
|
)
|
||||||
|
|
||||||
# Observe three actions, filling up the bucket.
|
# Observe three actions, filling up the bucket.
|
||||||
@ -363,7 +396,10 @@ class TestRatelimiter(unittest.HomeserverTestCase):
|
|||||||
|
|
||||||
def test_record_action_which_overfills_bucket(self) -> None:
|
def test_record_action_which_overfills_bucket(self) -> None:
|
||||||
limiter = Ratelimiter(
|
limiter = Ratelimiter(
|
||||||
store=self.hs.get_datastores().main, clock=None, rate_hz=0.1, burst_count=3
|
store=self.hs.get_datastores().main,
|
||||||
|
clock=self.clock,
|
||||||
|
rate_hz=0.1,
|
||||||
|
burst_count=3,
|
||||||
)
|
)
|
||||||
|
|
||||||
# Observe four actions, exceeding the bucket.
|
# Observe four actions, exceeding the bucket.
|
||||||
|
Loading…
Reference in New Issue
Block a user