summary refs log tree commit diff
path: root/tests/rest/client/test_redactions.py
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2019-09-11 15:39:38 +0100
committerGitHub <noreply@github.com>2019-09-11 15:39:38 +0100
commitcbcbfe64a2b306f0eaff74d4ceb7f2550d8b4b6a (patch)
tree8465e03c3d60c0d76aa8c77e2eb4ecd9f503a6b8 /tests/rest/client/test_redactions.py
parentClean up some code in the retry logic (#6017) (diff)
parentUpdate sample config (diff)
downloadsynapse-cbcbfe64a2b306f0eaff74d4ceb7f2550d8b4b6a.tar.xz
Merge pull request #6015 from matrix-org/erikj/ratelimit_admin_redaction
Allow use of different ratelimits for admin redactions.
Diffstat (limited to 'tests/rest/client/test_redactions.py')
-rw-r--r--tests/rest/client/test_redactions.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/rest/client/test_redactions.py b/tests/rest/client/test_redactions.py
index fe66e397c4..d2bcf256fa 100644
--- a/tests/rest/client/test_redactions.py
+++ b/tests/rest/client/test_redactions.py
@@ -30,6 +30,14 @@ class RedactionsTestCase(HomeserverTestCase):
         sync.register_servlets,
     ]
 
+    def make_homeserver(self, reactor, clock):
+        config = self.default_config()
+
+        config["rc_message"] = {"per_second": 0.2, "burst_count": 10}
+        config["rc_admin_redaction"] = {"per_second": 1, "burst_count": 100}
+
+        return self.setup_test_homeserver(config=config)
+
     def prepare(self, reactor, clock, hs):
         # register a couple of users
         self.mod_user_id = self.register_user("user1", "pass")
@@ -177,3 +185,20 @@ class RedactionsTestCase(HomeserverTestCase):
         self._redact_event(
             self.other_access_token, self.room_id, create_event_id, expect_code=403
         )
+
+    def test_redact_event_as_moderator_ratelimit(self):
+        """Tests that the correct ratelimiting is applied to redactions
+        """
+
+        message_ids = []
+        # as a regular user, send messages to redact
+        for _ in range(20):
+            b = self.helper.send(room_id=self.room_id, tok=self.other_access_token)
+            message_ids.append(b["event_id"])
+            self.reactor.advance(10)  # To get around ratelimits
+
+        # as the moderator, send a bunch of redactions
+        for msg_id in message_ids:
+            # These should all succeed, even though this would be denied by
+            # the standard message ratelimiter
+            self._redact_event(self.mod_access_token, self.room_id, msg_id)