diff options
author | Sean Quah <8349537+squahtx@users.noreply.github.com> | 2022-05-10 14:06:56 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-10 14:06:56 +0100 |
commit | dbb12a0b547914024316b6eb510069e900680e42 (patch) | |
tree | cd473b0e438a1500cae1ee1240bc3128871fbf40 /tests/server.py | |
parent | Add ability to cancel disconnected requests to `SynapseRequest` (#12588) (diff) | |
download | synapse-dbb12a0b547914024316b6eb510069e900680e42.tar.xz |
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>
Diffstat (limited to 'tests/server.py')
-rw-r--r-- | tests/server.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/server.py b/tests/server.py index 8f30e250c8..aaefcfc46c 100644 --- a/tests/server.py +++ b/tests/server.py @@ -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) |