mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-04 01:34:47 -04:00
New test, fix issues
This commit is contained in:
parent
c69df5d5d3
commit
cd36a1283b
2 changed files with 73 additions and 49 deletions
|
@ -322,6 +322,51 @@ class FederationClientTests(HomeserverTestCase):
|
|||
r = self.successResultOf(d)
|
||||
self.assertEqual(r, {})
|
||||
|
||||
def test_client_does_not_retry_on_400_plus(self):
|
||||
"""
|
||||
Another test for trailing slashes but now test that we don't retry on
|
||||
trailing slashes on a non-400/M_UNRECOGNIZED response.
|
||||
|
||||
See test_client_requires_trailing_slashes() for context.
|
||||
"""
|
||||
d = self.cl.get_json(
|
||||
"testserv:8008", "foo/bar", try_trailing_slash_on_400=True,
|
||||
)
|
||||
|
||||
# Send the request
|
||||
self.pump()
|
||||
|
||||
# there should have been a call to connectTCP
|
||||
clients = self.reactor.tcpClients
|
||||
self.assertEqual(len(clients), 1)
|
||||
(_host, _port, factory, _timeout, _bindAddress) = clients[0]
|
||||
|
||||
# complete the connection and wire it up to a fake transport
|
||||
client = factory.buildProtocol(None)
|
||||
conn = StringTransport()
|
||||
client.makeConnection(conn)
|
||||
|
||||
# that should have made it send the request to the connection
|
||||
self.assertRegex(conn.value(), b"^GET /foo/bar")
|
||||
|
||||
# Clear the original request data before sending a response
|
||||
conn.clear()
|
||||
|
||||
# Send the HTTP response
|
||||
client.dataReceived(
|
||||
b"HTTP/1.1 404 Not Found\r\n"
|
||||
b"Content-Type: application/json\r\n"
|
||||
b"Content-Length: 2\r\n"
|
||||
b"\r\n"
|
||||
b"{}"
|
||||
)
|
||||
|
||||
# We should not get another request
|
||||
self.assertEqual(conn.value(), b"")
|
||||
|
||||
# We should get a 404 failure response
|
||||
r = self.failureResultOf(d)
|
||||
|
||||
def test_client_sends_body(self):
|
||||
self.cl.post_json(
|
||||
"testserv:8008", "foo/bar", timeout=10000,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue