Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit 577a4cc

Browse files
committed
fix tests for device lists
1 parent 90999a2 commit 577a4cc

File tree

3 files changed

+58
-22
lines changed

3 files changed

+58
-22
lines changed

tests/appservice/test_scheduler.py

Lines changed: 33 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
)
2525
from synapse.logging.context import make_deferred_yieldable
2626
from synapse.server import HomeServer
27+
from synapse.types import DeviceLists
2728
from synapse.util import Clock
2829

2930
from tests import unittest
@@ -63,13 +64,15 @@ def test_single_service_up_txn_sent(self):
6364
# actual call
6465
self.successResultOf(defer.ensureDeferred(self.txnctrl.send(service, events)))
6566

67+
# txn made and saved
6668
self.store.create_appservice_txn.assert_called_once_with(
6769
service=service,
6870
events=events,
6971
ephemeral=[],
7072
to_device_messages=[], # txn made and saved
7173
one_time_key_counts={},
7274
unused_fallback_keys={},
75+
device_list_summary=DeviceLists(),
7376
)
7477
self.assertEqual(0, len(self.txnctrl.recoverers)) # no recoverer made
7578
txn.complete.assert_called_once_with(self.store) # txn completed
@@ -89,13 +92,15 @@ def test_single_service_down(self):
8992
# actual call
9093
self.successResultOf(defer.ensureDeferred(self.txnctrl.send(service, events)))
9194

95+
# txn made and saved
9296
self.store.create_appservice_txn.assert_called_once_with(
9397
service=service,
9498
events=events,
9599
ephemeral=[],
96100
to_device_messages=[], # txn made and saved
97101
one_time_key_counts={},
98102
unused_fallback_keys={},
103+
device_list_summary=DeviceLists(),
99104
)
100105
self.assertEqual(0, txn.send.call_count) # txn not sent though
101106
self.assertEqual(0, txn.complete.call_count) # or completed
@@ -124,6 +129,7 @@ def test_single_service_up_txn_not_sent(self):
124129
to_device_messages=[],
125130
one_time_key_counts={},
126131
unused_fallback_keys={},
132+
device_list_summary=DeviceLists(),
127133
)
128134
self.assertEqual(1, self.recoverer_fn.call_count) # recoverer made
129135
self.assertEqual(1, self.recoverer.recover.call_count) # and invoked
@@ -225,7 +231,9 @@ def test_send_single_event_no_queue(self):
225231
service = Mock(id=4)
226232
event = Mock()
227233
self.scheduler.enqueue_for_appservice(service, events=[event])
228-
self.txn_ctrl.send.assert_called_once_with(service, [event], [], [], None, None)
234+
self.txn_ctrl.send.assert_called_once_with(
235+
service, [event], [], [], None, None, DeviceLists()
236+
)
229237

230238
def test_send_single_event_with_queue(self):
231239
d = defer.Deferred()
@@ -240,12 +248,12 @@ def test_send_single_event_with_queue(self):
240248
# (call enqueue_for_appservice multiple times deliberately)
241249
self.scheduler.enqueue_for_appservice(service, events=[event2])
242250
self.scheduler.enqueue_for_appservice(service, events=[event3])
243-
self.txn_ctrl.send.assert_called_with(service, [event], [], [], None, None)
251+
self.txn_ctrl.send.assert_called_with(service, [event], [], [], None, None, DeviceLists())
244252
self.assertEqual(1, self.txn_ctrl.send.call_count)
245253
# Resolve the send event: expect the queued events to be sent
246254
d.callback(service)
247255
self.txn_ctrl.send.assert_called_with(
248-
service, [event2, event3], [], [], None, None
256+
service, [event2, event3], [], [], None, None, DeviceLists()
249257
)
250258
self.assertEqual(2, self.txn_ctrl.send.call_count)
251259

@@ -272,15 +280,21 @@ def do_send(*args, **kwargs):
272280
# send events for different ASes and make sure they are sent
273281
self.scheduler.enqueue_for_appservice(srv1, events=[srv_1_event])
274282
self.scheduler.enqueue_for_appservice(srv1, events=[srv_1_event2])
275-
self.txn_ctrl.send.assert_called_with(srv1, [srv_1_event], [], [], None, None)
283+
self.txn_ctrl.send.assert_called_with(
284+
srv1, [srv_1_event], [], [], None, None, DeviceLists()
285+
)
276286
self.scheduler.enqueue_for_appservice(srv2, events=[srv_2_event])
277287
self.scheduler.enqueue_for_appservice(srv2, events=[srv_2_event2])
278-
self.txn_ctrl.send.assert_called_with(srv2, [srv_2_event], [], [], None, None)
288+
self.txn_ctrl.send.assert_called_with(
289+
srv2, [srv_2_event], [], [], None, None, DeviceLists()
290+
)
279291

280292
# make sure callbacks for a service only send queued events for THAT
281293
# service
282294
srv_2_defer.callback(srv2)
283-
self.txn_ctrl.send.assert_called_with(srv2, [srv_2_event2], [], [], None, None)
295+
self.txn_ctrl.send.assert_called_with(
296+
srv2, [srv_2_event2], [], [], None, None, DeviceLists()
297+
)
284298
self.assertEqual(3, self.txn_ctrl.send.call_count)
285299

286300
def test_send_large_txns(self):
@@ -300,17 +314,17 @@ def do_send(*args, **kwargs):
300314

301315
# Expect the first event to be sent immediately.
302316
self.txn_ctrl.send.assert_called_with(
303-
service, [event_list[0]], [], [], None, None
317+
service, [event_list[0]], [], [], None, None, DeviceLists()
304318
)
305319
srv_1_defer.callback(service)
306320
# Then send the next 100 events
307321
self.txn_ctrl.send.assert_called_with(
308-
service, event_list[1:101], [], [], None, None
322+
service, event_list[1:101], [], [], None, None, DeviceLists()
309323
)
310324
srv_2_defer.callback(service)
311325
# Then the final 99 events
312326
self.txn_ctrl.send.assert_called_with(
313-
service, event_list[101:], [], [], None, None
327+
service, event_list[101:], [], [], None, None, DeviceLists()
314328
)
315329
self.assertEqual(3, self.txn_ctrl.send.call_count)
316330

@@ -320,7 +334,7 @@ def test_send_single_ephemeral_no_queue(self):
320334
event_list = [Mock(name="event")]
321335
self.scheduler.enqueue_for_appservice(service, ephemeral=event_list)
322336
self.txn_ctrl.send.assert_called_once_with(
323-
service, [], event_list, [], None, None
337+
service, [], event_list, [], None, None, DeviceLists()
324338
)
325339

326340
def test_send_multiple_ephemeral_no_queue(self):
@@ -329,7 +343,7 @@ def test_send_multiple_ephemeral_no_queue(self):
329343
event_list = [Mock(name="event1"), Mock(name="event2"), Mock(name="event3")]
330344
self.scheduler.enqueue_for_appservice(service, ephemeral=event_list)
331345
self.txn_ctrl.send.assert_called_once_with(
332-
service, [], event_list, [], None, None
346+
service, [], event_list, [], None, None, DeviceLists()
333347
)
334348

335349
def test_send_single_ephemeral_with_queue(self):
@@ -345,13 +359,15 @@ def test_send_single_ephemeral_with_queue(self):
345359
# Send more events: expect send() to NOT be called multiple times.
346360
self.scheduler.enqueue_for_appservice(service, ephemeral=event_list_2)
347361
self.scheduler.enqueue_for_appservice(service, ephemeral=event_list_3)
348-
self.txn_ctrl.send.assert_called_with(service, [], event_list_1, [], None, None)
362+
self.txn_ctrl.send.assert_called_with(
363+
service, [], event_list_1, [], None, None, DeviceLists()
364+
)
349365
self.assertEqual(1, self.txn_ctrl.send.call_count)
350366
# Resolve txn_ctrl.send
351367
d.callback(service)
352368
# Expect the queued events to be sent
353369
self.txn_ctrl.send.assert_called_with(
354-
service, [], event_list_2 + event_list_3, [], None, None
370+
service, [], event_list_2 + event_list_3, [], None, None, DeviceLists()
355371
)
356372
self.assertEqual(2, self.txn_ctrl.send.call_count)
357373

@@ -365,8 +381,10 @@ def test_send_large_txns_ephemeral(self):
365381
event_list = first_chunk + second_chunk
366382
self.scheduler.enqueue_for_appservice(service, ephemeral=event_list)
367383
self.txn_ctrl.send.assert_called_once_with(
368-
service, [], first_chunk, [], None, None
384+
service, [], first_chunk, [], None, None, DeviceLists()
369385
)
370386
d.callback(service)
371-
self.txn_ctrl.send.assert_called_with(service, [], second_chunk, [], None, None)
387+
self.txn_ctrl.send.assert_called_with(
388+
service, [], second_chunk, [], None, None, DeviceLists()
389+
)
372390
self.assertEqual(2, self.txn_ctrl.send.call_count)

tests/handlers/test_appservice.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ def test_notify_interested_services(self):
8686
def test_query_user_exists_unknown_user(self):
8787
user_id = "@someone:anywhere"
8888
services = [self._mkservice(is_interested_in_event=True)]
89-
services[0].is_interested_in_user.return_value = True
89+
services[0].is_user_in_namespace.return_value = True
9090
self.mock_store.get_app_services.return_value = services
9191
self.mock_store.get_user_by_id.return_value = make_awaitable(None)
9292

@@ -103,7 +103,7 @@ def test_query_user_exists_unknown_user(self):
103103
def test_query_user_exists_known_user(self):
104104
user_id = "@someone:anywhere"
105105
services = [self._mkservice(is_interested_in_event=True)]
106-
services[0].is_interested_in_user.return_value = True
106+
services[0].is_user_in_namespace.return_value = True
107107
self.mock_store.get_app_services.return_value = services
108108
self.mock_store.get_user_by_id.return_value = make_awaitable({"name": user_id})
109109

@@ -474,6 +474,7 @@ def test_application_services_receive_local_to_device(self):
474474
to_device_messages,
475475
_otks,
476476
_fbks,
477+
_device_list_summary,
477478
) = self.send_mock.call_args[0]
478479

479480
# Assert that this was the same to-device message that local_user sent
@@ -586,7 +587,15 @@ def test_application_services_receive_bursts_of_to_device(self):
586587
service_id_to_message_count: Dict[str, int] = {}
587588

588589
for call in self.send_mock.call_args_list:
589-
service, _events, _ephemeral, to_device_messages, _otks, _fbks = call[0]
590+
(
591+
service,
592+
_events,
593+
_ephemeral,
594+
to_device_messages,
595+
_otks,
596+
_fbks,
597+
_device_list_summary,
598+
) = call[0]
590599

591600
# Check that this was made to an interested service
592601
self.assertIn(service, interested_appservices)

tests/storage/test_appservice.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
ApplicationServiceStore,
3232
ApplicationServiceTransactionStore,
3333
)
34+
from synapse.types import DeviceLists
3435
from synapse.util import Clock
3536

3637
from tests import unittest
@@ -267,7 +268,9 @@ def test_create_appservice_txn_first(
267268
events = cast(List[EventBase], [Mock(event_id="e1"), Mock(event_id="e2")])
268269
txn = self.get_success(
269270
defer.ensureDeferred(
270-
self.store.create_appservice_txn(service, events, [], [], {}, {})
271+
self.store.create_appservice_txn(
272+
service, events, [], [], {}, {}, DeviceLists()
273+
)
271274
)
272275
)
273276
self.assertEqual(txn.id, 1)
@@ -283,7 +286,9 @@ def test_create_appservice_txn_older_last_txn(
283286
self.get_success(self._insert_txn(service.id, 9644, events))
284287
self.get_success(self._insert_txn(service.id, 9645, events))
285288
txn = self.get_success(
286-
self.store.create_appservice_txn(service, events, [], [], {}, {})
289+
self.store.create_appservice_txn(
290+
service, events, [], [], {}, {}, DeviceLists()
291+
)
287292
)
288293
self.assertEqual(txn.id, 9646)
289294
self.assertEqual(txn.events, events)
@@ -296,7 +301,9 @@ def test_create_appservice_txn_up_to_date_last_txn(
296301
events = cast(List[EventBase], [Mock(event_id="e1"), Mock(event_id="e2")])
297302
self.get_success(self._set_last_txn(service.id, 9643))
298303
txn = self.get_success(
299-
self.store.create_appservice_txn(service, events, [], [], {}, {})
304+
self.store.create_appservice_txn(
305+
service, events, [], [], {}, {}, DeviceLists()
306+
)
300307
)
301308
self.assertEqual(txn.id, 9644)
302309
self.assertEqual(txn.events, events)
@@ -320,7 +327,9 @@ def test_create_appservice_txn_up_fuzzing(
320327
self.get_success(self._insert_txn(self.as_list[3]["id"], 9643, events))
321328

322329
txn = self.get_success(
323-
self.store.create_appservice_txn(service, events, [], [], {}, {})
330+
self.store.create_appservice_txn(
331+
service, events, [], [], {}, {}, DeviceLists()
332+
)
324333
)
325334
self.assertEqual(txn.id, 9644)
326335
self.assertEqual(txn.events, events)

0 commit comments

Comments
 (0)