Skip to content

Commit

Permalink
Clean up replication unit tests. (matrix-org#7490)
Browse files Browse the repository at this point in the history
  • Loading branch information
erikjohnston authored and phil-flex committed Jun 16, 2020
1 parent 2e16305 commit fc4f158
Show file tree
Hide file tree
Showing 8 changed files with 16 additions and 51 deletions.
1 change: 1 addition & 0 deletions changelog.d/7490.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Clean up replication unit tests.
File renamed without changes.
50 changes: 7 additions & 43 deletions tests/replication/slave/storage/_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,23 +15,13 @@

from mock import Mock, NonCallableMock

from synapse.replication.tcp.client import (
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.replication._base import BaseStreamTestCase

from tests import unittest
from tests.server import FakeTransport


class BaseSlavedStoreTestCase(unittest.HomeserverTestCase):
class BaseSlavedStoreTestCase(BaseStreamTestCase):
def make_homeserver(self, reactor, clock):

hs = self.setup_test_homeserver(
"blue",
federation_client=Mock(),
ratelimiter=NonCallableMock(spec_set=["can_do_action"]),
)
Expand All @@ -41,39 +31,13 @@ def make_homeserver(self, reactor, clock):
return hs

def prepare(self, reactor, clock, hs):
super().prepare(reactor, clock, hs)

db_config = hs.config.database.get_single_database()
self.master_store = self.hs.get_datastore()
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
)
self.reconnect()

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)
self.master_store = hs.get_datastore()
self.slaved_store = self.worker_hs.get_datastore()
self.storage = hs.get_storage()

def replicate(self):
"""Tell the master side of replication that something has happened, and then
Expand Down
8 changes: 4 additions & 4 deletions tests/replication/slave/storage/test_events.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@

from ._base import BaseSlavedStoreTestCase

USER_ID = "@feeling:blue"
USER_ID_2 = "@bright:blue"
USER_ID = "@feeling:test"
USER_ID_2 = "@bright:test"
OUTLIER = {"outlier": True}
ROOM_ID = "!room:blue"
ROOM_ID = "!room:test"

logger = logging.getLogger(__name__)

Expand Down Expand Up @@ -239,7 +239,7 @@ def test_get_rooms_for_user_with_stream_ordering_with_multi_event_persist(self):
self.check("get_rooms_for_user_with_stream_ordering", (USER_ID_2,), set())

# limit the replication rate
repl_transport = self.server_to_client_transport
repl_transport = self._server_transport
repl_transport.autoflush = False

# build the join and message events and persist them in the same batch.
Expand Down
2 changes: 1 addition & 1 deletion tests/replication/tcp/streams/test_events.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
from synapse.rest import admin
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


Expand Down
2 changes: 1 addition & 1 deletion tests/replication/tcp/streams/test_federation.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
from synapse.federation.send_queue import EduRow
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):
Expand Down
2 changes: 1 addition & 1 deletion tests/replication/tcp/streams/test_receipts.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

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"

Expand Down
2 changes: 1 addition & 1 deletion tests/replication/tcp/streams/test_typing.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
from synapse.handlers.typing import RoomMember
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"

Expand Down

0 comments on commit fc4f158

Please sign in to comment.