summary refs log tree commit diff
path: root/tests/server.py
diff options
context:
space:
mode:
authorAndrew Morgan <andrew@amorgan.xyz>2020-02-21 11:38:13 +0000
committerAndrew Morgan <andrew@amorgan.xyz>2020-02-21 11:38:13 +0000
commit35a521bd6f4841162ca98706812be1eedbba85bd (patch)
treef577fcbd75aafc90d91d1b8ba803a3ef0023b9b4 /tests/server.py
parentFix a cache-invalidation bug for worker-based deployments (#5920) (diff)
parentImplement a structured logging output system. (#5680) (diff)
downloadsynapse-35a521bd6f4841162ca98706812be1eedbba85bd.tar.xz
Implement a structured logging output system. (#5680)
Diffstat (limited to 'tests/server.py')
-rw-r--r--tests/server.py27
1 files changed, 25 insertions, 2 deletions
diff --git a/tests/server.py b/tests/server.py

index d10c0603e9..1475f7c7f0 100644 --- a/tests/server.py +++ b/tests/server.py
@@ -11,9 +11,13 @@ from twisted.internet import address, threads, udp from twisted.internet._resolver import SimpleResolverComplexifier from twisted.internet.defer import Deferred, fail, succeed from twisted.internet.error import DNSLookupError -from twisted.internet.interfaces import IReactorPluggableNameResolver, IResolverSimple +from twisted.internet.interfaces import ( + IReactorPluggableNameResolver, + IReactorTCP, + IResolverSimple, +) from twisted.python.failure import Failure -from twisted.test.proto_helpers import MemoryReactorClock +from twisted.test.proto_helpers import AccumulatingProtocol, MemoryReactorClock from twisted.web.http import unquote from twisted.web.http_headers import Headers @@ -485,3 +489,22 @@ class FakeTransport(object): if not self.buffer and self.disconnecting: logger.info("FakeTransport: Buffer now empty, completing disconnect") self.disconnected = True + + +def connect_client(reactor: IReactorTCP, client_id: int) -> AccumulatingProtocol: + """ + Connect a client to a fake TCP transport. + + Args: + reactor + factory: The connecting factory to build. + """ + factory = reactor.tcpClients[client_id][2] + client = factory.buildProtocol(None) + server = AccumulatingProtocol() + server.makeConnection(FakeTransport(client, reactor)) + client.makeConnection(FakeTransport(server, reactor)) + + reactor.tcpClients.pop(client_id) + + return client, server