diff --git a/tests/federation/test_federation_sender.py b/tests/federation/test_federation_sender.py
index 60e0c31f43..e90592855a 100644
--- a/tests/federation/test_federation_sender.py
+++ b/tests/federation/test_federation_sender.py
@@ -201,9 +201,12 @@ class FederationSenderDevicesTestCases(HomeserverTestCase):
self.assertEqual(len(self.edus), 1)
stream_id = self.check_device_update_edu(self.edus.pop(0), u1, "D1", None)
+ # We queue up device list updates to be sent over federation, so we
+ # advance to clear the queue.
+ self.reactor.advance(1)
+
# a second call should produce no new device EDUs
self.hs.get_federation_sender().send_device_messages("host2")
- self.pump()
self.assertEqual(self.edus, [])
# a second device
@@ -232,6 +235,10 @@ class FederationSenderDevicesTestCases(HomeserverTestCase):
device1_signing_key = self.generate_and_upload_device_signing_key(u1, "D1")
device2_signing_key = self.generate_and_upload_device_signing_key(u1, "D2")
+ # We queue up device list updates to be sent over federation, so we
+ # advance to clear the queue.
+ self.reactor.advance(1)
+
# expect two more edus
self.assertEqual(len(self.edus), 2)
stream_id = self.check_device_update_edu(self.edus.pop(0), u1, "D1", stream_id)
@@ -265,6 +272,10 @@ class FederationSenderDevicesTestCases(HomeserverTestCase):
e2e_handler.upload_signing_keys_for_user(u1, cross_signing_keys)
)
+ # We queue up device list updates to be sent over federation, so we
+ # advance to clear the queue.
+ self.reactor.advance(1)
+
# expect signing key update edu
self.assertEqual(len(self.edus), 2)
self.assertEqual(self.edus.pop(0)["edu_type"], "m.signing_key_update")
@@ -284,6 +295,10 @@ class FederationSenderDevicesTestCases(HomeserverTestCase):
)
self.assertEqual(ret["failures"], {})
+ # We queue up device list updates to be sent over federation, so we
+ # advance to clear the queue.
+ self.reactor.advance(1)
+
# expect two edus, in one or two transactions. We don't know what order the
# devices will be updated.
self.assertEqual(len(self.edus), 2)
@@ -307,6 +322,10 @@ class FederationSenderDevicesTestCases(HomeserverTestCase):
self.login("user", "pass", device_id="D2")
self.login("user", "pass", device_id="D3")
+ # We queue up device list updates to be sent over federation, so we
+ # advance to clear the queue.
+ self.reactor.advance(1)
+
# expect three edus
self.assertEqual(len(self.edus), 3)
stream_id = self.check_device_update_edu(self.edus.pop(0), u1, "D1", None)
@@ -318,6 +337,10 @@ class FederationSenderDevicesTestCases(HomeserverTestCase):
self.hs.get_device_handler().delete_devices(u1, ["D1", "D2", "D3"])
)
+ # We queue up device list updates to be sent over federation, so we
+ # advance to clear the queue.
+ self.reactor.advance(1)
+
# expect three edus, in an unknown order
self.assertEqual(len(self.edus), 3)
for edu in self.edus:
@@ -350,12 +373,19 @@ class FederationSenderDevicesTestCases(HomeserverTestCase):
self.hs.get_device_handler().delete_devices(u1, ["D1", "D2", "D3"])
)
+ # We queue up device list updates to be sent over federation, so we
+ # advance to clear the queue.
+ self.reactor.advance(1)
+
self.assertGreaterEqual(mock_send_txn.call_count, 4)
# recover the server
mock_send_txn.side_effect = self.record_transaction
self.hs.get_federation_sender().send_device_messages("host2")
- self.pump()
+
+ # We queue up device list updates to be sent over federation, so we
+ # advance to clear the queue.
+ self.reactor.advance(1)
# for each device, there should be a single update
self.assertEqual(len(self.edus), 3)
@@ -390,6 +420,10 @@ class FederationSenderDevicesTestCases(HomeserverTestCase):
self.hs.get_device_handler().delete_devices(u1, ["D1", "D2", "D3"])
)
+ # We queue up device list updates to be sent over federation, so we
+ # advance to clear the queue.
+ self.reactor.advance(1)
+
self.assertGreaterEqual(mock_send_txn.call_count, 4)
# run the prune job
@@ -401,7 +435,10 @@ class FederationSenderDevicesTestCases(HomeserverTestCase):
# recover the server
mock_send_txn.side_effect = self.record_transaction
self.hs.get_federation_sender().send_device_messages("host2")
- self.pump()
+
+ # We queue up device list updates to be sent over federation, so we
+ # advance to clear the queue.
+ self.reactor.advance(1)
# there should be a single update for this user.
self.assertEqual(len(self.edus), 1)
@@ -435,6 +472,10 @@ class FederationSenderDevicesTestCases(HomeserverTestCase):
self.login("user", "pass", device_id="D2")
self.login("user", "pass", device_id="D3")
+ # We queue up device list updates to be sent over federation, so we
+ # advance to clear the queue.
+ self.reactor.advance(1)
+
# delete them again
self.get_success(
self.hs.get_device_handler().delete_devices(u1, ["D1", "D2", "D3"])
@@ -451,7 +492,10 @@ class FederationSenderDevicesTestCases(HomeserverTestCase):
# recover the server
mock_send_txn.side_effect = self.record_transaction
self.hs.get_federation_sender().send_device_messages("host2")
- self.pump()
+
+ # We queue up device list updates to be sent over federation, so we
+ # advance to clear the queue.
+ self.reactor.advance(1)
# ... and we should get a single update for this user.
self.assertEqual(len(self.edus), 1)
|