diff options
author | Andrew Morgan <andrew@amorgan.xyz> | 2021-12-09 18:31:10 +0000 |
---|---|---|
committer | Andrew Morgan <andrew@amorgan.xyz> | 2021-12-09 18:35:59 +0000 |
commit | 842c2994f5d49c511d570741dadef7e9b90de303 (patch) | |
tree | 89356d03dd8e5be16e7a59a7173495d6a491831d | |
parent | Create ApplicationService.is_interested_in_user, and use everywhere (diff) | |
download | synapse-842c2994f5d49c511d570741dadef7e9b90de303.tar.xz |
fix tests for device lists
-rw-r--r-- | tests/api/test_auth.py | 4 | ||||
-rw-r--r-- | tests/appservice/test_scheduler.py | 71 | ||||
-rw-r--r-- | tests/handlers/test_appservice.py | 24 | ||||
-rw-r--r-- | tests/storage/test_appservice.py | 9 |
4 files changed, 79 insertions, 29 deletions
diff --git a/tests/api/test_auth.py b/tests/api/test_auth.py index 3aa9ba3c43..0693da1cf6 100644 --- a/tests/api/test_auth.py +++ b/tests/api/test_auth.py @@ -178,7 +178,7 @@ class AuthTestCase(unittest.HomeserverTestCase): app_service = Mock( token="foobar", url="a_url", sender=self.test_user, ip_range_whitelist=None ) - app_service.is_interested_in_user = Mock(return_value=True) + app_service.is_user_in_namespace = Mock(return_value=True) self.store.get_app_service_by_token = Mock(return_value=app_service) # This just needs to return a truth-y value. self.store.get_user_by_id = simple_async_mock({"is_guest": False}) @@ -199,7 +199,7 @@ class AuthTestCase(unittest.HomeserverTestCase): app_service = Mock( token="foobar", url="a_url", sender=self.test_user, ip_range_whitelist=None ) - app_service.is_interested_in_user = Mock(return_value=False) + app_service.is_user_in_namespace = Mock(return_value=False) self.store.get_app_service_by_token = Mock(return_value=app_service) self.store.get_user_by_access_token = simple_async_mock(None) diff --git a/tests/appservice/test_scheduler.py b/tests/appservice/test_scheduler.py index 8f9afa8538..1c12cc5f49 100644 --- a/tests/appservice/test_scheduler.py +++ b/tests/appservice/test_scheduler.py @@ -24,6 +24,7 @@ from synapse.appservice.scheduler import ( ) from synapse.logging.context import make_deferred_yieldable from synapse.server import HomeServer +from synapse.types import DeviceLists from synapse.util import Clock from tests import unittest @@ -60,11 +61,13 @@ class ApplicationServiceSchedulerTransactionCtrlTestCase(unittest.TestCase): # actual call self.successResultOf(defer.ensureDeferred(self.txnctrl.send(service, events))) + # txn made and saved self.store.create_appservice_txn.assert_called_once_with( service=service, events=events, ephemeral=[], - to_device_messages=[], # txn made and saved + to_device_messages=[], + device_list_summary=DeviceLists(), ) self.assertEquals(0, len(self.txnctrl.recoverers)) # no recoverer made txn.complete.assert_called_once_with(self.store) # txn completed @@ -84,11 +87,13 @@ class ApplicationServiceSchedulerTransactionCtrlTestCase(unittest.TestCase): # actual call self.successResultOf(defer.ensureDeferred(self.txnctrl.send(service, events))) + # txn made and saved self.store.create_appservice_txn.assert_called_once_with( service=service, events=events, ephemeral=[], - to_device_messages=[], # txn made and saved + to_device_messages=[], + device_list_summary=DeviceLists(), ) self.assertEquals(0, txn.send.call_count) # txn not sent though self.assertEquals(0, txn.complete.call_count) # or completed @@ -111,7 +116,11 @@ class ApplicationServiceSchedulerTransactionCtrlTestCase(unittest.TestCase): self.successResultOf(defer.ensureDeferred(self.txnctrl.send(service, events))) self.store.create_appservice_txn.assert_called_once_with( - service=service, events=events, ephemeral=[], to_device_messages=[] + service=service, + events=events, + ephemeral=[], + to_device_messages=[], + device_list_summary=DeviceLists(), ) self.assertEquals(1, self.recoverer_fn.call_count) # recoverer made self.assertEquals(1, self.recoverer.recover.call_count) # and invoked @@ -213,7 +222,9 @@ class ApplicationServiceSchedulerQueuerTestCase(unittest.HomeserverTestCase): service = Mock(id=4) event = Mock() self.scheduler.enqueue_for_appservice(service, events=[event]) - self.txn_ctrl.send.assert_called_once_with(service, [event], [], []) + self.txn_ctrl.send.assert_called_once_with( + service, [event], [], [], DeviceLists() + ) def test_send_single_event_with_queue(self): d = defer.Deferred() @@ -228,11 +239,13 @@ class ApplicationServiceSchedulerQueuerTestCase(unittest.HomeserverTestCase): # (call enqueue_for_appservice multiple times deliberately) self.scheduler.enqueue_for_appservice(service, events=[event2]) self.scheduler.enqueue_for_appservice(service, events=[event3]) - self.txn_ctrl.send.assert_called_with(service, [event], [], []) + self.txn_ctrl.send.assert_called_with(service, [event], [], [], DeviceLists()) self.assertEquals(1, self.txn_ctrl.send.call_count) # Resolve the send event: expect the queued events to be sent d.callback(service) - self.txn_ctrl.send.assert_called_with(service, [event2, event3], [], []) + self.txn_ctrl.send.assert_called_with( + service, [event2, event3], [], [], DeviceLists() + ) self.assertEquals(2, self.txn_ctrl.send.call_count) def test_multiple_service_queues(self): @@ -258,15 +271,21 @@ class ApplicationServiceSchedulerQueuerTestCase(unittest.HomeserverTestCase): # send events for different ASes and make sure they are sent self.scheduler.enqueue_for_appservice(srv1, events=[srv_1_event]) self.scheduler.enqueue_for_appservice(srv1, events=[srv_1_event2]) - self.txn_ctrl.send.assert_called_with(srv1, [srv_1_event], [], []) + self.txn_ctrl.send.assert_called_with( + srv1, [srv_1_event], [], [], DeviceLists() + ) self.scheduler.enqueue_for_appservice(srv2, events=[srv_2_event]) self.scheduler.enqueue_for_appservice(srv2, events=[srv_2_event2]) - self.txn_ctrl.send.assert_called_with(srv2, [srv_2_event], [], []) + self.txn_ctrl.send.assert_called_with( + srv2, [srv_2_event], [], [], DeviceLists() + ) # make sure callbacks for a service only send queued events for THAT # service srv_2_defer.callback(srv2) - self.txn_ctrl.send.assert_called_with(srv2, [srv_2_event2], [], []) + self.txn_ctrl.send.assert_called_with( + srv2, [srv_2_event2], [], [], DeviceLists() + ) self.assertEquals(3, self.txn_ctrl.send.call_count) def test_send_large_txns(self): @@ -285,13 +304,19 @@ class ApplicationServiceSchedulerQueuerTestCase(unittest.HomeserverTestCase): self.scheduler.enqueue_for_appservice(service, [event], []) # Expect the first event to be sent immediately. - self.txn_ctrl.send.assert_called_with(service, [event_list[0]], [], []) + self.txn_ctrl.send.assert_called_with( + service, [event_list[0]], [], [], DeviceLists() + ) srv_1_defer.callback(service) # Then send the next 100 events - self.txn_ctrl.send.assert_called_with(service, event_list[1:101], [], []) + self.txn_ctrl.send.assert_called_with( + service, event_list[1:101], [], [], DeviceLists() + ) srv_2_defer.callback(service) # Then the final 99 events - self.txn_ctrl.send.assert_called_with(service, event_list[101:], [], []) + self.txn_ctrl.send.assert_called_with( + service, event_list[101:], [], [], DeviceLists() + ) self.assertEquals(3, self.txn_ctrl.send.call_count) def test_send_single_ephemeral_no_queue(self): @@ -299,14 +324,18 @@ class ApplicationServiceSchedulerQueuerTestCase(unittest.HomeserverTestCase): service = Mock(id=4, name="service") event_list = [Mock(name="event")] self.scheduler.enqueue_for_appservice(service, ephemeral=event_list) - self.txn_ctrl.send.assert_called_once_with(service, [], event_list, []) + self.txn_ctrl.send.assert_called_once_with( + service, [], event_list, [], DeviceLists() + ) def test_send_multiple_ephemeral_no_queue(self): # Expect the event to be sent immediately. service = Mock(id=4, name="service") event_list = [Mock(name="event1"), Mock(name="event2"), Mock(name="event3")] self.scheduler.enqueue_for_appservice(service, ephemeral=event_list) - self.txn_ctrl.send.assert_called_once_with(service, [], event_list, []) + self.txn_ctrl.send.assert_called_once_with( + service, [], event_list, [], DeviceLists() + ) def test_send_single_ephemeral_with_queue(self): d = defer.Deferred() @@ -321,13 +350,15 @@ class ApplicationServiceSchedulerQueuerTestCase(unittest.HomeserverTestCase): # Send more events: expect send() to NOT be called multiple times. self.scheduler.enqueue_for_appservice(service, ephemeral=event_list_2) self.scheduler.enqueue_for_appservice(service, ephemeral=event_list_3) - self.txn_ctrl.send.assert_called_with(service, [], event_list_1, []) + self.txn_ctrl.send.assert_called_with( + service, [], event_list_1, [], DeviceLists() + ) self.assertEquals(1, self.txn_ctrl.send.call_count) # Resolve txn_ctrl.send d.callback(service) # Expect the queued events to be sent self.txn_ctrl.send.assert_called_with( - service, [], event_list_2 + event_list_3, [] + service, [], event_list_2 + event_list_3, [], DeviceLists() ) self.assertEquals(2, self.txn_ctrl.send.call_count) @@ -340,7 +371,11 @@ class ApplicationServiceSchedulerQueuerTestCase(unittest.HomeserverTestCase): second_chunk = [Mock(name="event%i" % (i + 101)) for i in range(50)] event_list = first_chunk + second_chunk self.scheduler.enqueue_for_appservice(service, ephemeral=event_list) - self.txn_ctrl.send.assert_called_once_with(service, [], first_chunk, []) + self.txn_ctrl.send.assert_called_once_with( + service, [], first_chunk, [], DeviceLists() + ) d.callback(service) - self.txn_ctrl.send.assert_called_with(service, [], second_chunk, []) + self.txn_ctrl.send.assert_called_with( + service, [], second_chunk, [], DeviceLists() + ) self.assertEquals(2, self.txn_ctrl.send.call_count) diff --git a/tests/handlers/test_appservice.py b/tests/handlers/test_appservice.py index e4ec149273..9a84ff78d2 100644 --- a/tests/handlers/test_appservice.py +++ b/tests/handlers/test_appservice.py @@ -78,7 +78,7 @@ class AppServiceHandlerTestCase(unittest.TestCase): def test_query_user_exists_unknown_user(self): user_id = "@someone:anywhere" services = [self._mkservice(is_interested=True)] - services[0].is_interested_in_user.return_value = True + services[0].is_user_in_namespace.return_value = True self.mock_store.get_app_services.return_value = services self.mock_store.get_user_by_id.return_value = make_awaitable(None) @@ -95,7 +95,7 @@ class AppServiceHandlerTestCase(unittest.TestCase): def test_query_user_exists_known_user(self): user_id = "@someone:anywhere" services = [self._mkservice(is_interested=True)] - services[0].is_interested_in_user.return_value = True + services[0].is_user_in_namespace.return_value = True self.mock_store.get_app_services.return_value = services self.mock_store.get_user_by_id.return_value = make_awaitable({"name": user_id}) @@ -319,7 +319,9 @@ class AppServiceHandlerTestCase(unittest.TestCase): def _mkservice(self, is_interested, protocols=None): service = Mock() - service.is_interested.return_value = make_awaitable(is_interested) + service.is_interested_in_event.return_value = make_awaitable(is_interested) + service.is_interested_in_room.return_value = make_awaitable(is_interested) + service.is_interested_in_presence.return_value = make_awaitable(is_interested) service.token = "mock_service_token" service.url = "mock_service_url" service.protocols = protocols @@ -426,7 +428,13 @@ class ApplicationServicesHandlerSendEventsTestCase(unittest.HomeserverTestCase): # # The uninterested application service should not have been notified at all. self.send_mock.assert_called_once() - service, _events, _ephemeral, to_device_messages = self.send_mock.call_args[0] + ( + service, + _events, + _ephemeral, + to_device_messages, + _device_list_summary, + ) = self.send_mock.call_args[0] # Assert that this was the same to-device message that local_user sent self.assertEqual(service, interested_appservice) @@ -537,7 +545,13 @@ class ApplicationServicesHandlerSendEventsTestCase(unittest.HomeserverTestCase): service_id_to_message_count: Dict[str, int] = {} for call in self.send_mock.call_args_list: - service, _events, _ephemeral, to_device_messages = call[0] + ( + service, + _events, + _ephemeral, + to_device_messages, + _device_list_summary, + ) = call[0] # Check that this was made to an interested service self.assertIn(service, interested_appservices) diff --git a/tests/storage/test_appservice.py b/tests/storage/test_appservice.py index ddcb7f5549..bb1411232a 100644 --- a/tests/storage/test_appservice.py +++ b/tests/storage/test_appservice.py @@ -31,6 +31,7 @@ from synapse.storage.databases.main.appservice import ( ApplicationServiceStore, ApplicationServiceTransactionStore, ) +from synapse.types import DeviceLists from synapse.util import Clock from tests import unittest @@ -267,7 +268,7 @@ class ApplicationServiceTransactionStoreTestCase(unittest.HomeserverTestCase): events = cast(List[EventBase], [Mock(event_id="e1"), Mock(event_id="e2")]) txn = self.get_success( defer.ensureDeferred( - self.store.create_appservice_txn(service, events, [], []) + self.store.create_appservice_txn(service, events, [], [], DeviceLists()) ) ) self.assertEquals(txn.id, 1) @@ -283,7 +284,7 @@ class ApplicationServiceTransactionStoreTestCase(unittest.HomeserverTestCase): self.get_success(self._insert_txn(service.id, 9644, events)) self.get_success(self._insert_txn(service.id, 9645, events)) txn = self.get_success( - self.store.create_appservice_txn(service, events, [], []) + self.store.create_appservice_txn(service, events, [], [], DeviceLists()) ) self.assertEquals(txn.id, 9646) self.assertEquals(txn.events, events) @@ -296,7 +297,7 @@ class ApplicationServiceTransactionStoreTestCase(unittest.HomeserverTestCase): events = cast(List[EventBase], [Mock(event_id="e1"), Mock(event_id="e2")]) self.get_success(self._set_last_txn(service.id, 9643)) txn = self.get_success( - self.store.create_appservice_txn(service, events, [], []) + self.store.create_appservice_txn(service, events, [], [], DeviceLists()) ) self.assertEquals(txn.id, 9644) self.assertEquals(txn.events, events) @@ -320,7 +321,7 @@ class ApplicationServiceTransactionStoreTestCase(unittest.HomeserverTestCase): self.get_success(self._insert_txn(self.as_list[3]["id"], 9643, events)) txn = self.get_success( - self.store.create_appservice_txn(service, events, [], []) + self.store.create_appservice_txn(service, events, [], [], DeviceLists()) ) self.assertEquals(txn.id, 9644) self.assertEquals(txn.events, events) |