diff options
author | Erik Johnston <erik@matrix.org> | 2021-01-29 16:38:29 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-29 16:38:29 +0000 |
commit | f2c1560eca1e2160087a280261ca78d0708ad721 (patch) | |
tree | 3588043082a6da91569202eacff867be2d04a507 /tests/rest/client | |
parent | Fix Debian builds on Xenial (#9254) (diff) | |
download | synapse-f2c1560eca1e2160087a280261ca78d0708ad721.tar.xz |
Ratelimit invites by room and target user (#9258)
Diffstat (limited to 'tests/rest/client')
-rw-r--r-- | tests/rest/client/v1/test_rooms.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/rest/client/v1/test_rooms.py b/tests/rest/client/v1/test_rooms.py index d4e3165436..2548b3a80c 100644 --- a/tests/rest/client/v1/test_rooms.py +++ b/tests/rest/client/v1/test_rooms.py @@ -616,6 +616,41 @@ class RoomMemberStateTestCase(RoomBase): self.assertEquals(json.loads(content), channel.json_body) +class RoomInviteRatelimitTestCase(RoomBase): + user_id = "@sid1:red" + + servlets = [ + admin.register_servlets, + profile.register_servlets, + room.register_servlets, + ] + + @unittest.override_config( + {"rc_invites": {"per_room": {"per_second": 0.5, "burst_count": 3}}} + ) + def test_invites_by_rooms_ratelimit(self): + """Tests that invites in a room are actually rate-limited.""" + room_id = self.helper.create_room_as(self.user_id) + + for i in range(3): + self.helper.invite(room_id, self.user_id, "@user-%s:red" % (i,)) + + self.helper.invite(room_id, self.user_id, "@user-4:red", expect_code=429) + + @unittest.override_config( + {"rc_invites": {"per_user": {"per_second": 0.5, "burst_count": 3}}} + ) + def test_invites_by_users_ratelimit(self): + """Tests that invites to a specific user are actually rate-limited.""" + + for i in range(3): + room_id = self.helper.create_room_as(self.user_id) + self.helper.invite(room_id, self.user_id, "@other-users:red") + + room_id = self.helper.create_room_as(self.user_id) + self.helper.invite(room_id, self.user_id, "@other-users:red", expect_code=429) + + class RoomJoinRatelimitTestCase(RoomBase): user_id = "@sid1:red" |