mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-06-19 04:49:24 -04:00
Add a configuration to exclude rooms from sync response (#12310)
This commit is contained in:
parent
e0bb268134
commit
437a8ed9ef
7 changed files with 138 additions and 21 deletions
|
@ -772,3 +772,65 @@ class DeviceListSyncTestCase(unittest.HomeserverTestCase):
|
|||
self.assertIn(
|
||||
self.user_id, device_list_changes, incremental_sync_channel.json_body
|
||||
)
|
||||
|
||||
|
||||
class ExcludeRoomTestCase(unittest.HomeserverTestCase):
|
||||
|
||||
servlets = [
|
||||
synapse.rest.admin.register_servlets,
|
||||
login.register_servlets,
|
||||
sync.register_servlets,
|
||||
room.register_servlets,
|
||||
]
|
||||
|
||||
def prepare(
|
||||
self, reactor: MemoryReactor, clock: Clock, homeserver: HomeServer
|
||||
) -> None:
|
||||
self.user_id = self.register_user("user", "password")
|
||||
self.tok = self.login("user", "password")
|
||||
|
||||
self.excluded_room_id = self.helper.create_room_as(self.user_id, tok=self.tok)
|
||||
self.included_room_id = self.helper.create_room_as(self.user_id, tok=self.tok)
|
||||
|
||||
# We need to manually append the room ID, because we can't know the ID before
|
||||
# creating the room, and we can't set the config after starting the homeserver.
|
||||
self.hs.get_sync_handler().rooms_to_exclude.append(self.excluded_room_id)
|
||||
|
||||
def test_join_leave(self) -> None:
|
||||
"""Tests that rooms are correctly excluded from the 'join' and 'leave' sections of
|
||||
sync responses.
|
||||
"""
|
||||
channel = self.make_request("GET", "/sync", access_token=self.tok)
|
||||
self.assertEqual(channel.code, 200, channel.result)
|
||||
|
||||
self.assertNotIn(self.excluded_room_id, channel.json_body["rooms"]["join"])
|
||||
self.assertIn(self.included_room_id, channel.json_body["rooms"]["join"])
|
||||
|
||||
self.helper.leave(self.excluded_room_id, self.user_id, tok=self.tok)
|
||||
self.helper.leave(self.included_room_id, self.user_id, tok=self.tok)
|
||||
|
||||
channel = self.make_request(
|
||||
"GET",
|
||||
"/sync?since=" + channel.json_body["next_batch"],
|
||||
access_token=self.tok,
|
||||
)
|
||||
self.assertEqual(channel.code, 200, channel.result)
|
||||
|
||||
self.assertNotIn(self.excluded_room_id, channel.json_body["rooms"]["leave"])
|
||||
self.assertIn(self.included_room_id, channel.json_body["rooms"]["leave"])
|
||||
|
||||
def test_invite(self) -> None:
|
||||
"""Tests that rooms are correctly excluded from the 'invite' section of sync
|
||||
responses.
|
||||
"""
|
||||
invitee = self.register_user("invitee", "password")
|
||||
invitee_tok = self.login("invitee", "password")
|
||||
|
||||
self.helper.invite(self.excluded_room_id, self.user_id, invitee, tok=self.tok)
|
||||
self.helper.invite(self.included_room_id, self.user_id, invitee, tok=self.tok)
|
||||
|
||||
channel = self.make_request("GET", "/sync", access_token=invitee_tok)
|
||||
self.assertEqual(channel.code, 200, channel.result)
|
||||
|
||||
self.assertNotIn(self.excluded_room_id, channel.json_body["rooms"]["invite"])
|
||||
self.assertIn(self.included_room_id, channel.json_body["rooms"]["invite"])
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue