mirror of
https://github.com/element-hq/synapse.git
synced 2024-11-21 17:15:38 +03:00
Fix other unit tests with latest twisted (#17907)
There's also https://github.com/element-hq/synapse/pull/17906
This commit is contained in:
parent
2a321bac35
commit
77eafd47df
3 changed files with 55 additions and 7 deletions
1
changelog.d/17907.bugfix
Normal file
1
changelog.d/17907.bugfix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Fix tests to run with latest Twisted.
|
|
@ -39,7 +39,7 @@ from twisted.internet.endpoints import (
|
||||||
)
|
)
|
||||||
from twisted.internet.interfaces import (
|
from twisted.internet.interfaces import (
|
||||||
IPushProducer,
|
IPushProducer,
|
||||||
IReactorTCP,
|
IReactorTime,
|
||||||
IStreamClientEndpoint,
|
IStreamClientEndpoint,
|
||||||
)
|
)
|
||||||
from twisted.internet.protocol import Factory, Protocol
|
from twisted.internet.protocol import Factory, Protocol
|
||||||
|
@ -113,7 +113,7 @@ class RemoteHandler(logging.Handler):
|
||||||
port: int,
|
port: int,
|
||||||
maximum_buffer: int = 1000,
|
maximum_buffer: int = 1000,
|
||||||
level: int = logging.NOTSET,
|
level: int = logging.NOTSET,
|
||||||
_reactor: Optional[IReactorTCP] = None,
|
_reactor: Optional[IReactorTime] = None,
|
||||||
):
|
):
|
||||||
super().__init__(level=level)
|
super().__init__(level=level)
|
||||||
self.host = host
|
self.host = host
|
||||||
|
|
|
@ -58,6 +58,7 @@ import twisted
|
||||||
from twisted.enterprise import adbapi
|
from twisted.enterprise import adbapi
|
||||||
from twisted.internet import address, tcp, threads, udp
|
from twisted.internet import address, tcp, threads, udp
|
||||||
from twisted.internet._resolver import SimpleResolverComplexifier
|
from twisted.internet._resolver import SimpleResolverComplexifier
|
||||||
|
from twisted.internet.address import IPv4Address, IPv6Address
|
||||||
from twisted.internet.defer import Deferred, fail, maybeDeferred, succeed
|
from twisted.internet.defer import Deferred, fail, maybeDeferred, succeed
|
||||||
from twisted.internet.error import DNSLookupError
|
from twisted.internet.error import DNSLookupError
|
||||||
from twisted.internet.interfaces import (
|
from twisted.internet.interfaces import (
|
||||||
|
@ -73,6 +74,7 @@ from twisted.internet.interfaces import (
|
||||||
IReactorPluggableNameResolver,
|
IReactorPluggableNameResolver,
|
||||||
IReactorTime,
|
IReactorTime,
|
||||||
IResolverSimple,
|
IResolverSimple,
|
||||||
|
ITCPTransport,
|
||||||
ITransport,
|
ITransport,
|
||||||
)
|
)
|
||||||
from twisted.internet.protocol import ClientFactory, DatagramProtocol, Factory
|
from twisted.internet.protocol import ClientFactory, DatagramProtocol, Factory
|
||||||
|
@ -780,7 +782,7 @@ def get_clock() -> Tuple[ThreadedMemoryReactorClock, Clock]:
|
||||||
return clock, hs_clock
|
return clock, hs_clock
|
||||||
|
|
||||||
|
|
||||||
@implementer(ITransport)
|
@implementer(ITCPTransport)
|
||||||
@attr.s(cmp=False, auto_attribs=True)
|
@attr.s(cmp=False, auto_attribs=True)
|
||||||
class FakeTransport:
|
class FakeTransport:
|
||||||
"""
|
"""
|
||||||
|
@ -809,12 +811,12 @@ class FakeTransport:
|
||||||
will get called back for connectionLost() notifications etc.
|
will get called back for connectionLost() notifications etc.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
_peer_address: IAddress = attr.Factory(
|
_peer_address: Union[IPv4Address, IPv6Address] = attr.Factory(
|
||||||
lambda: address.IPv4Address("TCP", "127.0.0.1", 5678)
|
lambda: address.IPv4Address("TCP", "127.0.0.1", 5678)
|
||||||
)
|
)
|
||||||
"""The value to be returned by getPeer"""
|
"""The value to be returned by getPeer"""
|
||||||
|
|
||||||
_host_address: IAddress = attr.Factory(
|
_host_address: Union[IPv4Address, IPv6Address] = attr.Factory(
|
||||||
lambda: address.IPv4Address("TCP", "127.0.0.1", 1234)
|
lambda: address.IPv4Address("TCP", "127.0.0.1", 1234)
|
||||||
)
|
)
|
||||||
"""The value to be returned by getHost"""
|
"""The value to be returned by getHost"""
|
||||||
|
@ -826,10 +828,10 @@ class FakeTransport:
|
||||||
producer: Optional[IPushProducer] = None
|
producer: Optional[IPushProducer] = None
|
||||||
autoflush: bool = True
|
autoflush: bool = True
|
||||||
|
|
||||||
def getPeer(self) -> IAddress:
|
def getPeer(self) -> Union[IPv4Address, IPv6Address]:
|
||||||
return self._peer_address
|
return self._peer_address
|
||||||
|
|
||||||
def getHost(self) -> IAddress:
|
def getHost(self) -> Union[IPv4Address, IPv6Address]:
|
||||||
return self._host_address
|
return self._host_address
|
||||||
|
|
||||||
def loseConnection(self) -> None:
|
def loseConnection(self) -> None:
|
||||||
|
@ -939,6 +941,51 @@ class FakeTransport:
|
||||||
logger.info("FakeTransport: Buffer now empty, completing disconnect")
|
logger.info("FakeTransport: Buffer now empty, completing disconnect")
|
||||||
self.disconnected = True
|
self.disconnected = True
|
||||||
|
|
||||||
|
## ITCPTransport methods. ##
|
||||||
|
|
||||||
|
def loseWriteConnection(self) -> None:
|
||||||
|
"""
|
||||||
|
Half-close the write side of a TCP connection.
|
||||||
|
|
||||||
|
If the protocol instance this is attached to provides
|
||||||
|
IHalfCloseableProtocol, it will get notified when the operation is
|
||||||
|
done. When closing write connection, as with loseConnection this will
|
||||||
|
only happen when buffer has emptied and there is no registered
|
||||||
|
producer.
|
||||||
|
"""
|
||||||
|
raise NotImplementedError()
|
||||||
|
|
||||||
|
def getTcpNoDelay(self) -> bool:
|
||||||
|
"""
|
||||||
|
Return if C{TCP_NODELAY} is enabled.
|
||||||
|
"""
|
||||||
|
return False
|
||||||
|
|
||||||
|
def setTcpNoDelay(self, enabled: bool) -> None:
|
||||||
|
"""
|
||||||
|
Enable/disable C{TCP_NODELAY}.
|
||||||
|
|
||||||
|
Enabling C{TCP_NODELAY} turns off Nagle's algorithm. Small packets are
|
||||||
|
sent sooner, possibly at the expense of overall throughput.
|
||||||
|
"""
|
||||||
|
# Ignore setting this.
|
||||||
|
|
||||||
|
def getTcpKeepAlive(self) -> bool:
|
||||||
|
"""
|
||||||
|
Return if C{SO_KEEPALIVE} is enabled.
|
||||||
|
"""
|
||||||
|
return False
|
||||||
|
|
||||||
|
def setTcpKeepAlive(self, enabled: bool) -> None:
|
||||||
|
"""
|
||||||
|
Enable/disable C{SO_KEEPALIVE}.
|
||||||
|
|
||||||
|
Enabling C{SO_KEEPALIVE} sends packets periodically when the connection
|
||||||
|
is otherwise idle, usually once every two hours. They are intended
|
||||||
|
to allow detection of lost peers in a non-infinite amount of time.
|
||||||
|
"""
|
||||||
|
# Ignore setting this.
|
||||||
|
|
||||||
|
|
||||||
def connect_client(
|
def connect_client(
|
||||||
reactor: ThreadedMemoryReactorClock, client_id: int
|
reactor: ThreadedMemoryReactorClock, client_id: int
|
||||||
|
|
Loading…
Reference in a new issue