diff options
author | reivilibre <oliverw@matrix.org> | 2022-08-17 18:08:23 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-17 18:08:23 +0000 |
commit | 8bdf2bd31ef003f0e89a588d8977d4f689ef6856 (patch) | |
tree | f8f7e3343dfad7d041dd282ad3e0a7712b90b2e0 /tests/rest/admin | |
parent | A first pass at pruning the Synapse README (#13491) (diff) | |
download | synapse-8bdf2bd31ef003f0e89a588d8977d4f689ef6856.tar.xz |
Fix a bug in the `/event_reports` Admin API which meant that the total count could be larger than the number of results you can actually query for. (#13525)
Co-authored-by: Brendan Abolivier <babolivier@matrix.org>
Diffstat (limited to 'tests/rest/admin')
-rw-r--r-- | tests/rest/admin/test_event_reports.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/rest/admin/test_event_reports.py b/tests/rest/admin/test_event_reports.py index fbc490f46d..8a4e5c3f77 100644 --- a/tests/rest/admin/test_event_reports.py +++ b/tests/rest/admin/test_event_reports.py @@ -410,6 +410,33 @@ class EventReportsTestCase(unittest.HomeserverTestCase): self.assertIn("score", c) self.assertIn("reason", c) + def test_count_correct_despite_table_deletions(self) -> None: + """ + Tests that the count matches the number of rows, even if rows in joined tables + are missing. + """ + + # Delete rows from room_stats_state for one of our rooms. + self.get_success( + self.hs.get_datastores().main.db_pool.simple_delete( + "room_stats_state", {"room_id": self.room_id1}, desc="_" + ) + ) + + channel = self.make_request( + "GET", + self.url, + access_token=self.admin_user_tok, + ) + + self.assertEqual(200, channel.code, msg=channel.json_body) + # The 'total' field is 10 because only 10 reports will actually + # be retrievable since we deleted the rows in the room_stats_state + # table. + self.assertEqual(channel.json_body["total"], 10) + # This is consistent with the number of rows actually returned. + self.assertEqual(len(channel.json_body["event_reports"]), 10) + class EventReportDetailTestCase(unittest.HomeserverTestCase): servlets = [ |