Clean up replication unit tests. (#7490)

This commit is contained in:
Erik Johnston 2020-05-13 16:01:47 +01:00 committed by GitHub
parent 00ba9c48bf
commit 18c1e52d82
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 16 additions and 51 deletions

1
changelog.d/7490.misc Normal file
View File

@ -0,0 +1 @@
Clean up replication unit tests.

View File

@ -15,23 +15,13 @@
from mock import Mock, NonCallableMock from mock import Mock, NonCallableMock
from synapse.replication.tcp.client import ( from tests.replication._base import BaseStreamTestCase
DirectTcpReplicationClientFactory,
ReplicationDataHandler,
)
from synapse.replication.tcp.handler import ReplicationCommandHandler
from synapse.replication.tcp.resource import ReplicationStreamProtocolFactory
from synapse.storage.database import make_conn
from tests import unittest
from tests.server import FakeTransport
class BaseSlavedStoreTestCase(unittest.HomeserverTestCase): class BaseSlavedStoreTestCase(BaseStreamTestCase):
def make_homeserver(self, reactor, clock): def make_homeserver(self, reactor, clock):
hs = self.setup_test_homeserver( hs = self.setup_test_homeserver(
"blue",
federation_client=Mock(), federation_client=Mock(),
ratelimiter=NonCallableMock(spec_set=["can_do_action"]), ratelimiter=NonCallableMock(spec_set=["can_do_action"]),
) )
@ -41,39 +31,13 @@ class BaseSlavedStoreTestCase(unittest.HomeserverTestCase):
return hs return hs
def prepare(self, reactor, clock, hs): def prepare(self, reactor, clock, hs):
super().prepare(reactor, clock, hs)
db_config = hs.config.database.get_single_database() self.reconnect()
self.master_store = self.hs.get_datastore()
self.master_store = hs.get_datastore()
self.slaved_store = self.worker_hs.get_datastore()
self.storage = hs.get_storage() self.storage = hs.get_storage()
database = hs.get_datastores().databases[0]
self.slaved_store = self.STORE_TYPE(
database, make_conn(db_config, database.engine), self.hs
)
self.event_id = 0
server_factory = ReplicationStreamProtocolFactory(self.hs)
self.streamer = hs.get_replication_streamer()
# We now do some gut wrenching so that we have a client that is based
# off of the slave store rather than the main store.
self.replication_handler = ReplicationCommandHandler(self.hs)
self.replication_handler._instance_name = "worker"
self.replication_handler._replication_data_handler = ReplicationDataHandler(
self.slaved_store
)
client_factory = DirectTcpReplicationClientFactory(
self.hs, "client_name", self.replication_handler
)
client_factory.handler = self.replication_handler
server = server_factory.buildProtocol(None)
client = client_factory.buildProtocol(None)
client.makeConnection(FakeTransport(server, reactor))
self.server_to_client_transport = FakeTransport(client, reactor)
server.makeConnection(self.server_to_client_transport)
def replicate(self): def replicate(self):
"""Tell the master side of replication that something has happened, and then """Tell the master side of replication that something has happened, and then

View File

@ -24,10 +24,10 @@ from synapse.storage.roommember import RoomsForUser
from ._base import BaseSlavedStoreTestCase from ._base import BaseSlavedStoreTestCase
USER_ID = "@feeling:blue" USER_ID = "@feeling:test"
USER_ID_2 = "@bright:blue" USER_ID_2 = "@bright:test"
OUTLIER = {"outlier": True} OUTLIER = {"outlier": True}
ROOM_ID = "!room:blue" ROOM_ID = "!room:test"
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -239,7 +239,7 @@ class SlavedEventStoreTestCase(BaseSlavedStoreTestCase):
self.check("get_rooms_for_user_with_stream_ordering", (USER_ID_2,), set()) self.check("get_rooms_for_user_with_stream_ordering", (USER_ID_2,), set())
# limit the replication rate # limit the replication rate
repl_transport = self.server_to_client_transport repl_transport = self._server_transport
repl_transport.autoflush = False repl_transport.autoflush = False
# build the join and message events and persist them in the same batch. # build the join and message events and persist them in the same batch.

View File

@ -26,7 +26,7 @@ from synapse.replication.tcp.streams.events import (
from synapse.rest import admin from synapse.rest import admin
from synapse.rest.client.v1 import login, room from synapse.rest.client.v1 import login, room
from tests.replication.tcp.streams._base import BaseStreamTestCase from tests.replication._base import BaseStreamTestCase
from tests.test_utils.event_injection import inject_event, inject_member_event from tests.test_utils.event_injection import inject_event, inject_member_event

View File

@ -16,7 +16,7 @@
from synapse.federation.send_queue import EduRow from synapse.federation.send_queue import EduRow
from synapse.replication.tcp.streams.federation import FederationStream from synapse.replication.tcp.streams.federation import FederationStream
from tests.replication.tcp.streams._base import BaseStreamTestCase from tests.replication._base import BaseStreamTestCase
class FederationStreamTestCase(BaseStreamTestCase): class FederationStreamTestCase(BaseStreamTestCase):

View File

@ -19,7 +19,7 @@ from mock import Mock
from synapse.replication.tcp.streams._base import ReceiptsStream from synapse.replication.tcp.streams._base import ReceiptsStream
from tests.replication.tcp.streams._base import BaseStreamTestCase from tests.replication._base import BaseStreamTestCase
USER_ID = "@feeling:blue" USER_ID = "@feeling:blue"

View File

@ -17,7 +17,7 @@ from mock import Mock
from synapse.handlers.typing import RoomMember from synapse.handlers.typing import RoomMember
from synapse.replication.tcp.streams import TypingStream from synapse.replication.tcp.streams import TypingStream
from tests.replication.tcp.streams._base import BaseStreamTestCase from tests.replication._base import BaseStreamTestCase
USER_ID = "@feeling:blue" USER_ID = "@feeling:blue"