mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-02 10:46:06 -04:00
Add helper class for testing request cancellation (#12630)
Also expose the `SynapseRequest` from `FakeChannel` in tests, so that we can call `Request.connectionLost` to simulate a client disconnecting. Signed-off-by: Sean Quah <seanq@element.io>
This commit is contained in:
parent
5cfb004595
commit
dbb12a0b54
4 changed files with 127 additions and 0 deletions
|
@ -109,6 +109,17 @@ class FakeChannel:
|
|||
_ip: str = "127.0.0.1"
|
||||
_producer: Optional[Union[IPullProducer, IPushProducer]] = None
|
||||
resource_usage: Optional[ContextResourceUsage] = None
|
||||
_request: Optional[Request] = None
|
||||
|
||||
@property
|
||||
def request(self) -> Request:
|
||||
assert self._request is not None
|
||||
return self._request
|
||||
|
||||
@request.setter
|
||||
def request(self, request: Request) -> None:
|
||||
assert self._request is None
|
||||
self._request = request
|
||||
|
||||
@property
|
||||
def json_body(self):
|
||||
|
@ -322,6 +333,8 @@ def make_request(
|
|||
channel = FakeChannel(site, reactor, ip=client_ip)
|
||||
|
||||
req = request(channel, site)
|
||||
channel.request = req
|
||||
|
||||
req.content = BytesIO(content)
|
||||
# Twisted expects to be at the end of the content when parsing the request.
|
||||
req.content.seek(0, SEEK_END)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue