mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-06-10 19:32:42 -04:00
Delete messages for hidden devices from device_inbox
(#11199)
This commit is contained in:
parent
c9c3aea9b1
commit
4535532526
4 changed files with 186 additions and 0 deletions
|
@ -88,3 +88,77 @@ class DeviceInboxBackgroundUpdateStoreTestCase(HomeserverTestCase):
|
|||
)
|
||||
self.assertEqual(1, len(res))
|
||||
self.assertEqual(res[0], "cur_device")
|
||||
|
||||
def test_background_remove_hidden_devices_from_device_inbox(self):
|
||||
"""Test that the background task to delete hidden devices
|
||||
from device_inboxes works properly."""
|
||||
|
||||
# create a valid device
|
||||
self.get_success(
|
||||
self.store.store_device(self.user_id, "cur_device", "display_name")
|
||||
)
|
||||
|
||||
# create a hidden device
|
||||
self.get_success(
|
||||
self.store.db_pool.simple_insert(
|
||||
"devices",
|
||||
values={
|
||||
"user_id": self.user_id,
|
||||
"device_id": "hidden_device",
|
||||
"display_name": "hidden_display_name",
|
||||
"hidden": True,
|
||||
},
|
||||
)
|
||||
)
|
||||
|
||||
# Add device_inbox to devices
|
||||
self.get_success(
|
||||
self.store.db_pool.simple_insert(
|
||||
"device_inbox",
|
||||
{
|
||||
"user_id": self.user_id,
|
||||
"device_id": "cur_device",
|
||||
"stream_id": 1,
|
||||
"message_json": "{}",
|
||||
},
|
||||
)
|
||||
)
|
||||
self.get_success(
|
||||
self.store.db_pool.simple_insert(
|
||||
"device_inbox",
|
||||
{
|
||||
"user_id": self.user_id,
|
||||
"device_id": "hidden_device",
|
||||
"stream_id": 2,
|
||||
"message_json": "{}",
|
||||
},
|
||||
)
|
||||
)
|
||||
|
||||
# Insert and run the background update.
|
||||
self.get_success(
|
||||
self.store.db_pool.simple_insert(
|
||||
"background_updates",
|
||||
{
|
||||
"update_name": "remove_hidden_devices_from_device_inbox",
|
||||
"progress_json": "{}",
|
||||
},
|
||||
)
|
||||
)
|
||||
|
||||
# ... and tell the DataStore that it hasn't finished all updates yet
|
||||
self.store.db_pool.updates._all_done = False
|
||||
|
||||
self.wait_for_background_updates()
|
||||
|
||||
# Make sure the background task deleted hidden devices from device_inbox
|
||||
res = self.get_success(
|
||||
self.store.db_pool.simple_select_onecol(
|
||||
table="device_inbox",
|
||||
keyvalues={},
|
||||
retcol="device_id",
|
||||
desc="get_device_id_from_device_inbox",
|
||||
)
|
||||
)
|
||||
self.assertEqual(1, len(res))
|
||||
self.assertEqual(res[0], "cur_device")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue