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

Clean up replication unit tests. #7490

Merged
merged 2 commits into from
May 13, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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.
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"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the correct server name used by the test HS objects

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