Add changelog + stuffs
This commit is contained in:
parent
2362ef10a3
commit
71885068e5
|
@ -0,0 +1 @@
|
||||||
|
Allow modules to provide local /publicRooms results.
|
|
@ -543,8 +543,8 @@ class RoomWorkerStore(CacheInvalidationWorkerStore):
|
||||||
|
|
||||||
# Filter out Nones – rather omit the field altogether
|
# Filter out Nones – rather omit the field altogether
|
||||||
for key in list(entry):
|
for key in list(entry):
|
||||||
if entry[key] is None:
|
if entry[key] is None: # type: ignore[literal-required]
|
||||||
del entry[key]
|
del entry[key] # type: ignore[misc]
|
||||||
|
|
||||||
return entry
|
return entry
|
||||||
|
|
||||||
|
|
|
@ -64,12 +64,25 @@ class FetchPublicRoomsTestCase(HomeserverTestCase):
|
||||||
world_readable=True,
|
world_readable=True,
|
||||||
guest_can_join=False,
|
guest_can_join=False,
|
||||||
)
|
)
|
||||||
if limit is not None and limit < 3 and bounds is not None:
|
room3_2 = PublicRoom(
|
||||||
|
room_id="!test3_2:test",
|
||||||
|
num_joined_members=3,
|
||||||
|
world_readable=True,
|
||||||
|
guest_can_join=False,
|
||||||
|
)
|
||||||
|
rooms = [room3_2, room3, room1]
|
||||||
|
if not forwards:
|
||||||
|
rooms.reverse()
|
||||||
|
|
||||||
|
if limit is not None:
|
||||||
|
if bounds is None:
|
||||||
|
return rooms[:limit]
|
||||||
|
|
||||||
(last_joined_members, last_room_id) = bounds
|
(last_joined_members, last_room_id) = bounds
|
||||||
if last_joined_members < 3 or last_room_id == room3["room_id"]:
|
if last_joined_members < 3 or last_room_id == room3_2["room_id"]:
|
||||||
return [room1]
|
return [room1]
|
||||||
|
|
||||||
return [room3, room1]
|
return [room3_2, room3, room1]
|
||||||
|
|
||||||
self._module_api.register_public_rooms_callbacks(fetch_public_rooms=cb)
|
self._module_api.register_public_rooms_callbacks(fetch_public_rooms=cb)
|
||||||
|
|
||||||
|
@ -92,15 +105,26 @@ class FetchPublicRoomsTestCase(HomeserverTestCase):
|
||||||
channel = self.make_request("GET", self.url)
|
channel = self.make_request("GET", self.url)
|
||||||
self.assertEqual(channel.code, HTTPStatus.OK, channel.result)
|
self.assertEqual(channel.code, HTTPStatus.OK, channel.result)
|
||||||
|
|
||||||
self.assertEquals(len(channel.json_body["chunk"]), 3)
|
self.assertEquals(len(channel.json_body["chunk"]), 4)
|
||||||
self.assertEquals(channel.json_body["chunk"][0]["num_joined_members"], 3)
|
self.assertEquals(channel.json_body["chunk"][0]["num_joined_members"], 3)
|
||||||
self.assertEquals(channel.json_body["chunk"][1]["num_joined_members"], 2)
|
self.assertEquals(channel.json_body["chunk"][1]["num_joined_members"], 3)
|
||||||
self.assertEquals(channel.json_body["chunk"][2]["num_joined_members"], 1)
|
self.assertEquals(channel.json_body["chunk"][2]["num_joined_members"], 2)
|
||||||
|
self.assertEquals(channel.json_body["chunk"][3]["num_joined_members"], 1)
|
||||||
|
|
||||||
def test_pagination(self) -> None:
|
def test_pagination(self) -> None:
|
||||||
channel = self.make_request("GET", self.url + "?limit=1")
|
channel = self.make_request("GET", self.url + "?limit=1")
|
||||||
self.assertEqual(channel.code, HTTPStatus.OK, channel.result)
|
self.assertEqual(channel.code, HTTPStatus.OK, channel.result)
|
||||||
self.assertEquals(channel.json_body["chunk"][0]["num_joined_members"], 3)
|
self.assertEquals(channel.json_body["chunk"][0]["num_joined_members"], 3)
|
||||||
|
returned_room3_id = channel.json_body["chunk"][0]["room_id"]
|
||||||
|
|
||||||
|
channel = self.make_request(
|
||||||
|
"GET", self.url + "?limit=1&since=" + channel.json_body["next_batch"]
|
||||||
|
)
|
||||||
|
self.assertEqual(channel.code, HTTPStatus.OK, channel.result)
|
||||||
|
self.assertEquals(channel.json_body["chunk"][0]["num_joined_members"], 3)
|
||||||
|
self.assertNotEquals(
|
||||||
|
returned_room3_id, channel.json_body["chunk"][0]["room_id"]
|
||||||
|
)
|
||||||
|
|
||||||
channel = self.make_request(
|
channel = self.make_request(
|
||||||
"GET", self.url + "?limit=1&since=" + channel.json_body["next_batch"]
|
"GET", self.url + "?limit=1&since=" + channel.json_body["next_batch"]
|
||||||
|
|
Loading…
Reference in New Issue