mirror of
https://git.anonymousland.org/anonymousland/synapse-product.git
synced 2025-09-30 06:58:24 -04:00
Add number of local devices to Room Details Admin API (#8886)
This commit is contained in:
parent
1d55c7b567
commit
0a34cdfc66
6 changed files with 138 additions and 27 deletions
|
@ -1084,6 +1084,7 @@ class RoomTestCase(unittest.HomeserverTestCase):
|
|||
self.assertIn("canonical_alias", channel.json_body)
|
||||
self.assertIn("joined_members", channel.json_body)
|
||||
self.assertIn("joined_local_members", channel.json_body)
|
||||
self.assertIn("joined_local_devices", channel.json_body)
|
||||
self.assertIn("version", channel.json_body)
|
||||
self.assertIn("creator", channel.json_body)
|
||||
self.assertIn("encryption", channel.json_body)
|
||||
|
@ -1096,6 +1097,39 @@ class RoomTestCase(unittest.HomeserverTestCase):
|
|||
|
||||
self.assertEqual(room_id_1, channel.json_body["room_id"])
|
||||
|
||||
def test_single_room_devices(self):
|
||||
"""Test that `joined_local_devices` can be requested correctly"""
|
||||
room_id_1 = self.helper.create_room_as(self.admin_user, tok=self.admin_user_tok)
|
||||
|
||||
url = "/_synapse/admin/v1/rooms/%s" % (room_id_1,)
|
||||
request, channel = self.make_request(
|
||||
"GET", url.encode("ascii"), access_token=self.admin_user_tok,
|
||||
)
|
||||
self.assertEqual(200, channel.code, msg=channel.json_body)
|
||||
self.assertEqual(1, channel.json_body["joined_local_devices"])
|
||||
|
||||
# Have another user join the room
|
||||
user_1 = self.register_user("foo", "pass")
|
||||
user_tok_1 = self.login("foo", "pass")
|
||||
self.helper.join(room_id_1, user_1, tok=user_tok_1)
|
||||
|
||||
url = "/_synapse/admin/v1/rooms/%s" % (room_id_1,)
|
||||
request, channel = self.make_request(
|
||||
"GET", url.encode("ascii"), access_token=self.admin_user_tok,
|
||||
)
|
||||
self.assertEqual(200, channel.code, msg=channel.json_body)
|
||||
self.assertEqual(2, channel.json_body["joined_local_devices"])
|
||||
|
||||
# leave room
|
||||
self.helper.leave(room_id_1, self.admin_user, tok=self.admin_user_tok)
|
||||
self.helper.leave(room_id_1, user_1, tok=user_tok_1)
|
||||
url = "/_synapse/admin/v1/rooms/%s" % (room_id_1,)
|
||||
request, channel = self.make_request(
|
||||
"GET", url.encode("ascii"), access_token=self.admin_user_tok,
|
||||
)
|
||||
self.assertEqual(200, channel.code, msg=channel.json_body)
|
||||
self.assertEqual(0, channel.json_body["joined_local_devices"])
|
||||
|
||||
def test_room_members(self):
|
||||
"""Test that room members can be requested correctly"""
|
||||
# Create two test rooms
|
||||
|
|
|
@ -79,6 +79,32 @@ class DeviceStoreTestCase(tests.unittest.TestCase):
|
|||
res["device2"],
|
||||
)
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def test_count_devices_by_users(self):
|
||||
yield defer.ensureDeferred(
|
||||
self.store.store_device("user_id", "device1", "display_name 1")
|
||||
)
|
||||
yield defer.ensureDeferred(
|
||||
self.store.store_device("user_id", "device2", "display_name 2")
|
||||
)
|
||||
yield defer.ensureDeferred(
|
||||
self.store.store_device("user_id2", "device3", "display_name 3")
|
||||
)
|
||||
|
||||
res = yield defer.ensureDeferred(self.store.count_devices_by_users())
|
||||
self.assertEqual(0, res)
|
||||
|
||||
res = yield defer.ensureDeferred(self.store.count_devices_by_users(["unknown"]))
|
||||
self.assertEqual(0, res)
|
||||
|
||||
res = yield defer.ensureDeferred(self.store.count_devices_by_users(["user_id"]))
|
||||
self.assertEqual(2, res)
|
||||
|
||||
res = yield defer.ensureDeferred(
|
||||
self.store.count_devices_by_users(["user_id", "user_id2"])
|
||||
)
|
||||
self.assertEqual(3, res)
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def test_get_device_updates_by_remote(self):
|
||||
device_ids = ["device_id1", "device_id2"]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue