0
0
Fork 1
mirror of https://mau.dev/maunium/synapse.git synced 2024-12-14 14:24:05 +01:00

Modernize unit tests configuration settings for workers. (#14568)

Use the newer foo_instances configuration instead of the
deprecated flags to enable specific features (e.g. start_pushers).
This commit is contained in:
realtyem 2022-12-01 06:38:27 -06:00 committed by GitHub
parent 7aefc7e9fc
commit 854a6884d8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 123 additions and 81 deletions

1
changelog.d/14568.misc Normal file
View file

@ -0,0 +1 @@
Modernize unit tests configuration related to workers.

View file

@ -126,6 +126,13 @@ class PresenceRouterTestModule:
class PresenceRouterTestCase(FederatingHomeserverTestCase): class PresenceRouterTestCase(FederatingHomeserverTestCase):
"""
Test cases using a custom PresenceRouter
By default in test cases, federation sending is disabled. This class re-enables it
for the main process by setting `federation_sender_instances` to None.
"""
servlets = [ servlets = [
admin.register_servlets, admin.register_servlets,
login.register_servlets, login.register_servlets,
@ -150,6 +157,11 @@ class PresenceRouterTestCase(FederatingHomeserverTestCase):
self.sync_handler = self.hs.get_sync_handler() self.sync_handler = self.hs.get_sync_handler()
self.module_api = homeserver.get_module_api() self.module_api = homeserver.get_module_api()
def default_config(self) -> JsonDict:
config = super().default_config()
config["federation_sender_instances"] = None
return config
@override_config( @override_config(
{ {
"presence": { "presence": {
@ -162,7 +174,6 @@ class PresenceRouterTestCase(FederatingHomeserverTestCase):
}, },
} }
}, },
"send_federation": True,
} }
) )
def test_receiving_all_presence_legacy(self): def test_receiving_all_presence_legacy(self):
@ -180,7 +191,6 @@ class PresenceRouterTestCase(FederatingHomeserverTestCase):
}, },
}, },
], ],
"send_federation": True,
} }
) )
def test_receiving_all_presence(self): def test_receiving_all_presence(self):
@ -290,7 +300,6 @@ class PresenceRouterTestCase(FederatingHomeserverTestCase):
}, },
} }
}, },
"send_federation": True,
} }
) )
def test_send_local_online_presence_to_with_module_legacy(self): def test_send_local_online_presence_to_with_module_legacy(self):
@ -310,7 +319,6 @@ class PresenceRouterTestCase(FederatingHomeserverTestCase):
}, },
}, },
], ],
"send_federation": True,
} }
) )
def test_send_local_online_presence_to_with_module(self): def test_send_local_online_presence_to_with_module(self):

View file

@ -7,13 +7,21 @@ from synapse.federation.sender import PerDestinationQueue, TransactionManager
from synapse.federation.units import Edu from synapse.federation.units import Edu
from synapse.rest import admin from synapse.rest import admin
from synapse.rest.client import login, room from synapse.rest.client import login, room
from synapse.types import JsonDict
from synapse.util.retryutils import NotRetryingDestination from synapse.util.retryutils import NotRetryingDestination
from tests.test_utils import event_injection, make_awaitable from tests.test_utils import event_injection, make_awaitable
from tests.unittest import FederatingHomeserverTestCase, override_config from tests.unittest import FederatingHomeserverTestCase
class FederationCatchUpTestCases(FederatingHomeserverTestCase): class FederationCatchUpTestCases(FederatingHomeserverTestCase):
"""
Tests cases of catching up over federation.
By default for test cases federation sending is disabled. This Test class has it
re-enabled for the main process.
"""
servlets = [ servlets = [
admin.register_servlets, admin.register_servlets,
room.register_servlets, room.register_servlets,
@ -42,6 +50,11 @@ class FederationCatchUpTestCases(FederatingHomeserverTestCase):
self.record_transaction self.record_transaction
) )
def default_config(self) -> JsonDict:
config = super().default_config()
config["federation_sender_instances"] = None
return config
async def record_transaction(self, txn, json_cb): async def record_transaction(self, txn, json_cb):
if self.is_online: if self.is_online:
data = json_cb() data = json_cb()
@ -79,7 +92,6 @@ class FederationCatchUpTestCases(FederatingHomeserverTestCase):
)[0] )[0]
return {"event_id": event_id, "stream_ordering": stream_ordering} return {"event_id": event_id, "stream_ordering": stream_ordering}
@override_config({"send_federation": True})
def test_catch_up_destination_rooms_tracking(self): def test_catch_up_destination_rooms_tracking(self):
""" """
Tests that we populate the `destination_rooms` table as needed. Tests that we populate the `destination_rooms` table as needed.
@ -105,7 +117,6 @@ class FederationCatchUpTestCases(FederatingHomeserverTestCase):
self.assertEqual(row_2["event_id"], event_id_2) self.assertEqual(row_2["event_id"], event_id_2)
self.assertEqual(row_1["stream_ordering"], row_2["stream_ordering"] - 1) self.assertEqual(row_1["stream_ordering"], row_2["stream_ordering"] - 1)
@override_config({"send_federation": True})
def test_catch_up_last_successful_stream_ordering_tracking(self): def test_catch_up_last_successful_stream_ordering_tracking(self):
""" """
Tests that we populate the `destination_rooms` table as needed. Tests that we populate the `destination_rooms` table as needed.
@ -163,7 +174,6 @@ class FederationCatchUpTestCases(FederatingHomeserverTestCase):
"Send succeeded but not marked as last_successful_stream_ordering", "Send succeeded but not marked as last_successful_stream_ordering",
) )
@override_config({"send_federation": True}) # critical to federate
def test_catch_up_from_blank_state(self): def test_catch_up_from_blank_state(self):
""" """
Runs an overall test of federation catch-up from scratch. Runs an overall test of federation catch-up from scratch.
@ -260,7 +270,6 @@ class FederationCatchUpTestCases(FederatingHomeserverTestCase):
return per_dest_queue, results_list return per_dest_queue, results_list
@override_config({"send_federation": True})
def test_catch_up_loop(self): def test_catch_up_loop(self):
""" """
Tests the behaviour of _catch_up_transmission_loop. Tests the behaviour of _catch_up_transmission_loop.
@ -325,7 +334,6 @@ class FederationCatchUpTestCases(FederatingHomeserverTestCase):
event_5.internal_metadata.stream_ordering, event_5.internal_metadata.stream_ordering,
) )
@override_config({"send_federation": True})
def test_catch_up_on_synapse_startup(self): def test_catch_up_on_synapse_startup(self):
""" """
Tests the behaviour of get_catch_up_outstanding_destinations and Tests the behaviour of get_catch_up_outstanding_destinations and
@ -424,7 +432,6 @@ class FederationCatchUpTestCases(FederatingHomeserverTestCase):
# - all destinations are woken exactly once; they appear once in woken. # - all destinations are woken exactly once; they appear once in woken.
self.assertCountEqual(woken, server_names[:-1]) self.assertCountEqual(woken, server_names[:-1])
@override_config({"send_federation": True})
def test_not_latest_event(self): def test_not_latest_event(self):
"""Test that we send the latest event in the room even if its not ours.""" """Test that we send the latest event in the room even if its not ours."""

View file

@ -25,10 +25,17 @@ from synapse.rest.client import login
from synapse.types import JsonDict, ReadReceipt from synapse.types import JsonDict, ReadReceipt
from tests.test_utils import make_awaitable from tests.test_utils import make_awaitable
from tests.unittest import HomeserverTestCase, override_config from tests.unittest import HomeserverTestCase
class FederationSenderReceiptsTestCases(HomeserverTestCase): class FederationSenderReceiptsTestCases(HomeserverTestCase):
"""
Test federation sending to update receipts.
By default for test cases federation sending is disabled. This Test class has it
re-enabled for the main process.
"""
def make_homeserver(self, reactor, clock): def make_homeserver(self, reactor, clock):
hs = self.setup_test_homeserver( hs = self.setup_test_homeserver(
federation_transport_client=Mock(spec=["send_transaction"]), federation_transport_client=Mock(spec=["send_transaction"]),
@ -44,7 +51,11 @@ class FederationSenderReceiptsTestCases(HomeserverTestCase):
return hs return hs
@override_config({"send_federation": True}) def default_config(self) -> JsonDict:
config = super().default_config()
config["federation_sender_instances"] = None
return config
def test_send_receipts(self): def test_send_receipts(self):
mock_send_transaction = ( mock_send_transaction = (
self.hs.get_federation_transport_client().send_transaction self.hs.get_federation_transport_client().send_transaction
@ -87,7 +98,6 @@ class FederationSenderReceiptsTestCases(HomeserverTestCase):
], ],
) )
@override_config({"send_federation": True})
def test_send_receipts_thread(self): def test_send_receipts_thread(self):
mock_send_transaction = ( mock_send_transaction = (
self.hs.get_federation_transport_client().send_transaction self.hs.get_federation_transport_client().send_transaction
@ -164,7 +174,6 @@ class FederationSenderReceiptsTestCases(HomeserverTestCase):
], ],
) )
@override_config({"send_federation": True})
def test_send_receipts_with_backoff(self): def test_send_receipts_with_backoff(self):
"""Send two receipts in quick succession; the second should be flushed, but """Send two receipts in quick succession; the second should be flushed, but
only after 20ms""" only after 20ms"""
@ -251,6 +260,13 @@ class FederationSenderReceiptsTestCases(HomeserverTestCase):
class FederationSenderDevicesTestCases(HomeserverTestCase): class FederationSenderDevicesTestCases(HomeserverTestCase):
"""
Test federation sending to update devices.
By default for test cases federation sending is disabled. This Test class has it
re-enabled for the main process.
"""
servlets = [ servlets = [
admin.register_servlets, admin.register_servlets,
login.register_servlets, login.register_servlets,
@ -265,7 +281,8 @@ class FederationSenderDevicesTestCases(HomeserverTestCase):
def default_config(self): def default_config(self):
c = super().default_config() c = super().default_config()
c["send_federation"] = True # Enable federation sending on the main process.
c["federation_sender_instances"] = None
return c return c
def prepare(self, reactor, clock, hs): def prepare(self, reactor, clock, hs):

View file

@ -992,7 +992,8 @@ class PresenceJoinTestCase(unittest.HomeserverTestCase):
def default_config(self): def default_config(self):
config = super().default_config() config = super().default_config()
config["send_federation"] = True # Enable federation sending on the main process.
config["federation_sender_instances"] = None
return config return config
def prepare(self, reactor, clock, hs): def prepare(self, reactor, clock, hs):

View file

@ -200,7 +200,8 @@ class TypingNotificationsTestCase(unittest.HomeserverTestCase):
], ],
) )
@override_config({"send_federation": True}) # Enable federation sending on the main process.
@override_config({"federation_sender_instances": None})
def test_started_typing_remote_send(self) -> None: def test_started_typing_remote_send(self) -> None:
self.room_members = [U_APPLE, U_ONION] self.room_members = [U_APPLE, U_ONION]
@ -305,7 +306,8 @@ class TypingNotificationsTestCase(unittest.HomeserverTestCase):
self.assertEqual(events[0], []) self.assertEqual(events[0], [])
self.assertEqual(events[1], 0) self.assertEqual(events[1], 0)
@override_config({"send_federation": True}) # Enable federation sending on the main process.
@override_config({"federation_sender_instances": None})
def test_stopped_typing(self) -> None: def test_stopped_typing(self) -> None:
self.room_members = [U_APPLE, U_BANANA, U_ONION] self.room_members = [U_APPLE, U_BANANA, U_ONION]

View file

@ -56,7 +56,8 @@ class UserDirectoryTestCase(unittest.HomeserverTestCase):
def make_homeserver(self, reactor: MemoryReactor, clock: Clock) -> HomeServer: def make_homeserver(self, reactor: MemoryReactor, clock: Clock) -> HomeServer:
config = self.default_config() config = self.default_config()
config["update_user_directory"] = True # Re-enables updating the user directory, as that function is needed below.
config["update_user_directory_from_worker"] = None
self.appservice = ApplicationService( self.appservice = ApplicationService(
token="i_am_an_app_service", token="i_am_an_app_service",
@ -1045,7 +1046,9 @@ class TestUserDirSearchDisabled(unittest.HomeserverTestCase):
def make_homeserver(self, reactor: MemoryReactor, clock: Clock) -> HomeServer: def make_homeserver(self, reactor: MemoryReactor, clock: Clock) -> HomeServer:
config = self.default_config() config = self.default_config()
config["update_user_directory"] = True # Re-enables updating the user directory, as that function is needed below. It
# will be force disabled later
config["update_user_directory_from_worker"] = None
hs = self.setup_test_homeserver(config=config) hs = self.setup_test_homeserver(config=config)
self.config = hs.config self.config = hs.config

View file

@ -336,7 +336,8 @@ class ModuleApiTestCase(HomeserverTestCase):
# Test sending local online presence to users from the main process # Test sending local online presence to users from the main process
_test_sending_local_online_presence_to_local_user(self, test_with_workers=False) _test_sending_local_online_presence_to_local_user(self, test_with_workers=False)
@override_config({"send_federation": True}) # Enable federation sending on the main process.
@override_config({"federation_sender_instances": None})
def test_send_local_online_presence_to_federation(self): def test_send_local_online_presence_to_federation(self):
"""Tests that send_local_presence_to_users sends local online presence to remote users.""" """Tests that send_local_presence_to_users sends local online presence to remote users."""
# Create a user who will send presence updates # Create a user who will send presence updates

View file

@ -66,7 +66,6 @@ class EmailPusherTests(HomeserverTestCase):
"riot_base_url": None, "riot_base_url": None,
} }
config["public_baseurl"] = "http://aaa" config["public_baseurl"] = "http://aaa"
config["start_pushers"] = True
hs = self.setup_test_homeserver(config=config) hs = self.setup_test_homeserver(config=config)

View file

@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
from typing import Any, Dict, List, Optional, Tuple from typing import List, Optional, Tuple
from unittest.mock import Mock from unittest.mock import Mock
from twisted.internet.defer import Deferred from twisted.internet.defer import Deferred
@ -41,11 +41,6 @@ class HTTPPusherTests(HomeserverTestCase):
user_id = True user_id = True
hijack_auth = False hijack_auth = False
def default_config(self) -> Dict[str, Any]:
config = super().default_config()
config["start_pushers"] = True
return config
def make_homeserver(self, reactor: MemoryReactor, clock: Clock) -> HomeServer: def make_homeserver(self, reactor: MemoryReactor, clock: Clock) -> HomeServer:
self.push_attempts: List[Tuple[Deferred, str, dict]] = [] self.push_attempts: List[Tuple[Deferred, str, dict]] = []

View file

@ -307,7 +307,7 @@ class BaseMultiWorkerStreamTestCase(unittest.HomeserverTestCase):
stream to the master HS. stream to the master HS.
Args: Args:
worker_app: Type of worker, e.g. `synapse.app.federation_sender`. worker_app: Type of worker, e.g. `synapse.app.generic_worker`.
extra_config: Any extra config to use for this instances. extra_config: Any extra config to use for this instances.
**kwargs: Options that get passed to `self.setup_test_homeserver`, **kwargs: Options that get passed to `self.setup_test_homeserver`,
useful to e.g. pass some mocks for things like `federation_http_client` useful to e.g. pass some mocks for things like `federation_http_client`

View file

@ -22,9 +22,8 @@ class FederationStreamTestCase(BaseStreamTestCase):
def _get_worker_hs_config(self) -> dict: def _get_worker_hs_config(self) -> dict:
# enable federation sending on the worker # enable federation sending on the worker
config = super()._get_worker_hs_config() config = super()._get_worker_hs_config()
# TODO: make it so we don't need both of these config["worker_name"] = "federation_sender1"
config["send_federation"] = False config["federation_sender_instances"] = ["federation_sender1"]
config["worker_app"] = "synapse.app.federation_sender"
return config return config
def test_catchup(self): def test_catchup(self):

View file

@ -38,7 +38,7 @@ class WorkerAuthenticationTestCase(BaseMultiWorkerStreamTestCase):
def _get_worker_hs_config(self) -> dict: def _get_worker_hs_config(self) -> dict:
config = self.default_config() config = self.default_config()
config["worker_app"] = "synapse.app.client_reader" config["worker_app"] = "synapse.app.generic_worker"
config["worker_replication_host"] = "testserv" config["worker_replication_host"] = "testserv"
config["worker_replication_http_port"] = "8765" config["worker_replication_http_port"] = "8765"
@ -53,7 +53,7 @@ class WorkerAuthenticationTestCase(BaseMultiWorkerStreamTestCase):
4. Return the final request. 4. Return the final request.
""" """
worker_hs = self.make_worker_hs("synapse.app.client_reader") worker_hs = self.make_worker_hs("synapse.app.generic_worker")
site = self._hs_to_site[worker_hs] site = self._hs_to_site[worker_hs]
channel_1 = make_request( channel_1 = make_request(

View file

@ -22,20 +22,20 @@ logger = logging.getLogger(__name__)
class ClientReaderTestCase(BaseMultiWorkerStreamTestCase): class ClientReaderTestCase(BaseMultiWorkerStreamTestCase):
"""Test using one or more client readers for registration.""" """Test using one or more generic workers for registration."""
servlets = [register.register_servlets] servlets = [register.register_servlets]
def _get_worker_hs_config(self) -> dict: def _get_worker_hs_config(self) -> dict:
config = self.default_config() config = self.default_config()
config["worker_app"] = "synapse.app.client_reader" config["worker_app"] = "synapse.app.generic_worker"
config["worker_replication_host"] = "testserv" config["worker_replication_host"] = "testserv"
config["worker_replication_http_port"] = "8765" config["worker_replication_http_port"] = "8765"
return config return config
def test_register_single_worker(self): def test_register_single_worker(self):
"""Test that registration works when using a single client reader worker.""" """Test that registration works when using a single generic worker."""
worker_hs = self.make_worker_hs("synapse.app.client_reader") worker_hs = self.make_worker_hs("synapse.app.generic_worker")
site = self._hs_to_site[worker_hs] site = self._hs_to_site[worker_hs]
channel_1 = make_request( channel_1 = make_request(
@ -64,9 +64,9 @@ class ClientReaderTestCase(BaseMultiWorkerStreamTestCase):
self.assertEqual(channel_2.json_body["user_id"], "@user:test") self.assertEqual(channel_2.json_body["user_id"], "@user:test")
def test_register_multi_worker(self): def test_register_multi_worker(self):
"""Test that registration works when using multiple client reader workers.""" """Test that registration works when using multiple generic workers."""
worker_hs_1 = self.make_worker_hs("synapse.app.client_reader") worker_hs_1 = self.make_worker_hs("synapse.app.generic_worker")
worker_hs_2 = self.make_worker_hs("synapse.app.client_reader") worker_hs_2 = self.make_worker_hs("synapse.app.generic_worker")
site_1 = self._hs_to_site[worker_hs_1] site_1 = self._hs_to_site[worker_hs_1]
channel_1 = make_request( channel_1 = make_request(

View file

@ -25,8 +25,9 @@ from tests.unittest import HomeserverTestCase
class FederationAckTestCase(HomeserverTestCase): class FederationAckTestCase(HomeserverTestCase):
def default_config(self) -> dict: def default_config(self) -> dict:
config = super().default_config() config = super().default_config()
config["worker_app"] = "synapse.app.federation_sender" config["worker_app"] = "synapse.app.generic_worker"
config["send_federation"] = False config["worker_name"] = "federation_sender1"
config["federation_sender_instances"] = ["federation_sender1"]
return config return config
def make_homeserver(self, reactor, clock): def make_homeserver(self, reactor, clock):

View file

@ -27,17 +27,19 @@ logger = logging.getLogger(__name__)
class FederationSenderTestCase(BaseMultiWorkerStreamTestCase): class FederationSenderTestCase(BaseMultiWorkerStreamTestCase):
"""
Various tests for federation sending on workers.
Federation sending is disabled by default, it will be enabled in each test by
updating 'federation_sender_instances'.
"""
servlets = [ servlets = [
login.register_servlets, login.register_servlets,
register_servlets_for_client_rest_resource, register_servlets_for_client_rest_resource,
room.register_servlets, room.register_servlets,
] ]
def default_config(self):
conf = super().default_config()
conf["send_federation"] = False
return conf
def test_send_event_single_sender(self): def test_send_event_single_sender(self):
"""Test that using a single federation sender worker correctly sends a """Test that using a single federation sender worker correctly sends a
new event. new event.
@ -46,8 +48,11 @@ class FederationSenderTestCase(BaseMultiWorkerStreamTestCase):
mock_client.put_json.return_value = make_awaitable({}) mock_client.put_json.return_value = make_awaitable({})
self.make_worker_hs( self.make_worker_hs(
"synapse.app.federation_sender", "synapse.app.generic_worker",
{"send_federation": False}, {
"worker_name": "federation_sender1",
"federation_sender_instances": ["federation_sender1"],
},
federation_http_client=mock_client, federation_http_client=mock_client,
) )
@ -73,11 +78,13 @@ class FederationSenderTestCase(BaseMultiWorkerStreamTestCase):
mock_client1 = Mock(spec=["put_json"]) mock_client1 = Mock(spec=["put_json"])
mock_client1.put_json.return_value = make_awaitable({}) mock_client1.put_json.return_value = make_awaitable({})
self.make_worker_hs( self.make_worker_hs(
"synapse.app.federation_sender", "synapse.app.generic_worker",
{ {
"send_federation": True, "worker_name": "federation_sender1",
"worker_name": "sender1", "federation_sender_instances": [
"federation_sender_instances": ["sender1", "sender2"], "federation_sender1",
"federation_sender2",
],
}, },
federation_http_client=mock_client1, federation_http_client=mock_client1,
) )
@ -85,11 +92,13 @@ class FederationSenderTestCase(BaseMultiWorkerStreamTestCase):
mock_client2 = Mock(spec=["put_json"]) mock_client2 = Mock(spec=["put_json"])
mock_client2.put_json.return_value = make_awaitable({}) mock_client2.put_json.return_value = make_awaitable({})
self.make_worker_hs( self.make_worker_hs(
"synapse.app.federation_sender", "synapse.app.generic_worker",
{ {
"send_federation": True, "worker_name": "federation_sender2",
"worker_name": "sender2", "federation_sender_instances": [
"federation_sender_instances": ["sender1", "sender2"], "federation_sender1",
"federation_sender2",
],
}, },
federation_http_client=mock_client2, federation_http_client=mock_client2,
) )
@ -136,11 +145,13 @@ class FederationSenderTestCase(BaseMultiWorkerStreamTestCase):
mock_client1 = Mock(spec=["put_json"]) mock_client1 = Mock(spec=["put_json"])
mock_client1.put_json.return_value = make_awaitable({}) mock_client1.put_json.return_value = make_awaitable({})
self.make_worker_hs( self.make_worker_hs(
"synapse.app.federation_sender", "synapse.app.generic_worker",
{ {
"send_federation": True, "worker_name": "federation_sender1",
"worker_name": "sender1", "federation_sender_instances": [
"federation_sender_instances": ["sender1", "sender2"], "federation_sender1",
"federation_sender2",
],
}, },
federation_http_client=mock_client1, federation_http_client=mock_client1,
) )
@ -148,11 +159,13 @@ class FederationSenderTestCase(BaseMultiWorkerStreamTestCase):
mock_client2 = Mock(spec=["put_json"]) mock_client2 = Mock(spec=["put_json"])
mock_client2.put_json.return_value = make_awaitable({}) mock_client2.put_json.return_value = make_awaitable({})
self.make_worker_hs( self.make_worker_hs(
"synapse.app.federation_sender", "synapse.app.generic_worker",
{ {
"send_federation": True, "worker_name": "federation_sender2",
"worker_name": "sender2", "federation_sender_instances": [
"federation_sender_instances": ["sender1", "sender2"], "federation_sender1",
"federation_sender2",
],
}, },
federation_http_client=mock_client2, federation_http_client=mock_client2,
) )

View file

@ -38,11 +38,6 @@ class PusherShardTestCase(BaseMultiWorkerStreamTestCase):
self.other_user_id = self.register_user("otheruser", "pass") self.other_user_id = self.register_user("otheruser", "pass")
self.other_access_token = self.login("otheruser", "pass") self.other_access_token = self.login("otheruser", "pass")
def default_config(self):
conf = super().default_config()
conf["start_pushers"] = False
return conf
def _create_pusher_and_send_msg(self, localpart): def _create_pusher_and_send_msg(self, localpart):
# Create a user that will get push notifications # Create a user that will get push notifications
user_id = self.register_user(localpart, "pass") user_id = self.register_user(localpart, "pass")
@ -92,8 +87,8 @@ class PusherShardTestCase(BaseMultiWorkerStreamTestCase):
) )
self.make_worker_hs( self.make_worker_hs(
"synapse.app.pusher", "synapse.app.generic_worker",
{"start_pushers": False}, {"worker_name": "pusher1", "pusher_instances": ["pusher1"]},
proxied_blacklisted_http_client=http_client_mock, proxied_blacklisted_http_client=http_client_mock,
) )
@ -122,9 +117,8 @@ class PusherShardTestCase(BaseMultiWorkerStreamTestCase):
) )
self.make_worker_hs( self.make_worker_hs(
"synapse.app.pusher", "synapse.app.generic_worker",
{ {
"start_pushers": True,
"worker_name": "pusher1", "worker_name": "pusher1",
"pusher_instances": ["pusher1", "pusher2"], "pusher_instances": ["pusher1", "pusher2"],
}, },
@ -137,9 +131,8 @@ class PusherShardTestCase(BaseMultiWorkerStreamTestCase):
) )
self.make_worker_hs( self.make_worker_hs(
"synapse.app.pusher", "synapse.app.generic_worker",
{ {
"start_pushers": True,
"worker_name": "pusher2", "worker_name": "pusher2",
"pusher_instances": ["pusher1", "pusher2"], "pusher_instances": ["pusher1", "pusher2"],
}, },

View file

@ -125,7 +125,8 @@ def default_config(
""" """
config_dict = { config_dict = {
"server_name": name, "server_name": name,
"send_federation": False, # Setting this to an empty list turns off federation sending.
"federation_sender_instances": [],
"media_store_path": "media", "media_store_path": "media",
# the test signing key is just an arbitrary ed25519 key to keep the config # the test signing key is just an arbitrary ed25519 key to keep the config
# parser happy # parser happy
@ -183,8 +184,9 @@ def default_config(
# rooms will fail. # rooms will fail.
"default_room_version": DEFAULT_ROOM_VERSION, "default_room_version": DEFAULT_ROOM_VERSION,
# disable user directory updates, because they get done in the # disable user directory updates, because they get done in the
# background, which upsets the test runner. # background, which upsets the test runner. Setting this to an
"update_user_directory": False, # (obviously) fake worker name disables updating the user directory.
"update_user_directory_from_worker": "does_not_exist_worker_name",
"caches": {"global_factor": 1, "sync_response_cache_duration": 0}, "caches": {"global_factor": 1, "sync_response_cache_duration": 0},
"listeners": [{"port": 0, "type": "http"}], "listeners": [{"port": 0, "type": "http"}],
} }