Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Make make_request actually render the request #8761

Merged
merged 5 commits into from
Nov 17, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/8761.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Refactor test utilities for injecting HTTP requests.
10 changes: 3 additions & 7 deletions tests/app/test_frontend_proxy.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

from synapse.app.generic_worker import GenericWorkerServer

from tests.server import make_request, render
from tests.server import make_request
from tests.unittest import HomeserverTestCase


Expand Down Expand Up @@ -56,10 +56,8 @@ def test_listen_http_with_presence_enabled(self):
# Grab the resource from the site that was told to listen
self.assertEqual(len(self.reactor.tcpServers), 1)
site = self.reactor.tcpServers[0][1]
resource = site.resource.children[b"_matrix"].children[b"client"]

request, channel = make_request(self.reactor, site, "PUT", "presence/a/status")
render(request, resource, self.reactor)
_, channel = make_request(self.reactor, site, "PUT", "presence/a/status")

# 400 + unrecognised, because nothing is registered
self.assertEqual(channel.code, 400)
Expand All @@ -78,10 +76,8 @@ def test_listen_http_with_presence_disabled(self):
# Grab the resource from the site that was told to listen
self.assertEqual(len(self.reactor.tcpServers), 1)
site = self.reactor.tcpServers[0][1]
resource = site.resource.children[b"_matrix"].children[b"client"]

request, channel = make_request(self.reactor, site, "PUT", "presence/a/status")
render(request, resource, self.reactor)
_, channel = make_request(self.reactor, site, "PUT", "presence/a/status")

# 401, because the stub servlet still checks authentication
self.assertEqual(channel.code, 401)
Expand Down
12 changes: 5 additions & 7 deletions tests/app/test_openid_listener.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
from synapse.app.homeserver import SynapseHomeServer
from synapse.config.server import parse_listener_def

from tests.server import make_request, render
from tests.server import make_request
from tests.unittest import HomeserverTestCase


Expand Down Expand Up @@ -67,16 +67,15 @@ def test_openid_listener(self, names, expectation):
# Grab the resource from the site that was told to listen
site = self.reactor.tcpServers[0][1]
try:
resource = site.resource.children[b"_matrix"].children[b"federation"]
site.resource.children[b"_matrix"].children[b"federation"]
except KeyError:
if expectation == "no_resource":
return
raise

request, channel = make_request(
_, channel = make_request(
self.reactor, site, "GET", "/_matrix/federation/v1/openid/userinfo"
)
render(request, resource, self.reactor)

self.assertEqual(channel.code, 401)

Expand Down Expand Up @@ -116,15 +115,14 @@ def test_openid_listener(self, names, expectation):
# Grab the resource from the site that was told to listen
site = self.reactor.tcpServers[0][1]
try:
resource = site.resource.children[b"_matrix"].children[b"federation"]
site.resource.children[b"_matrix"].children[b"federation"]
except KeyError:
if expectation == "no_resource":
return
raise

request, channel = make_request(
_, channel = make_request(
self.reactor, site, "GET", "/_matrix/federation/v1/openid/userinfo"
)
render(request, resource, self.reactor)

self.assertEqual(channel.code, 401)
2 changes: 0 additions & 2 deletions tests/federation/test_complexity.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ def test_complexity_simple(self):
request, channel = self.make_request(
"GET", "/_matrix/federation/unstable/rooms/%s/complexity" % (room_1,)
)
self.render(request)
self.assertEquals(200, channel.code)
complexity = channel.json_body["v1"]
self.assertTrue(complexity > 0, complexity)
Expand All @@ -64,7 +63,6 @@ def test_complexity_simple(self):
request, channel = self.make_request(
"GET", "/_matrix/federation/unstable/rooms/%s/complexity" % (room_1,)
)
self.render(request)
self.assertEquals(200, channel.code)
complexity = channel.json_body["v1"]
self.assertEqual(complexity, 1.23)
Expand Down
3 changes: 0 additions & 3 deletions tests/federation/test_federation_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ def test_bad_request(self, query_content):
"/_matrix/federation/v1/get_missing_events/%s" % (room_1,),
query_content,
)
self.render(request)
self.assertEquals(400, channel.code, channel.result)
self.assertEqual(channel.json_body["errcode"], "M_NOT_JSON")

Expand Down Expand Up @@ -99,7 +98,6 @@ def test_without_event_id(self):
request, channel = self.make_request(
"GET", "/_matrix/federation/v1/state/%s" % (room_1,)
)
self.render(request)
self.assertEquals(200, channel.code, channel.result)

self.assertEqual(
Expand Down Expand Up @@ -132,7 +130,6 @@ def test_needs_to_be_in_room(self):
request, channel = self.make_request(
"GET", "/_matrix/federation/v1/state/%s" % (room_1,)
)
self.render(request)
self.assertEquals(403, channel.code, channel.result)
self.assertEqual(channel.json_body["errcode"], "M_FORBIDDEN")

Expand Down
2 changes: 0 additions & 2 deletions tests/federation/transport/test_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,11 @@ def test_blocked_public_room_list_over_federation(self):
request, channel = self.make_request(
"GET", "/_matrix/federation/v1/publicRooms"
)
self.render(request)
self.assertEquals(403, channel.code)

@override_config({"allow_public_rooms_over_federation": True})
def test_open_public_room_list_over_federation(self):
request, channel = self.make_request(
"GET", "/_matrix/federation/v1/publicRooms"
)
self.render(request)
self.assertEquals(200, channel.code)
6 changes: 0 additions & 6 deletions tests/handlers/test_directory.py
Original file line number Diff line number Diff line change
Expand Up @@ -412,7 +412,6 @@ def test_denied(self):
b"directory/room/%23test%3Atest",
('{"room_id":"%s"}' % (room_id,)).encode("ascii"),
)
self.render(request)
self.assertEquals(403, channel.code, channel.result)

def test_allowed(self):
Expand All @@ -423,7 +422,6 @@ def test_allowed(self):
b"directory/room/%23unofficial_test%3Atest",
('{"room_id":"%s"}' % (room_id,)).encode("ascii"),
)
self.render(request)
self.assertEquals(200, channel.code, channel.result)


Expand All @@ -438,7 +436,6 @@ def prepare(self, reactor, clock, hs):
request, channel = self.make_request(
"PUT", b"directory/list/room/%s" % (room_id.encode("ascii"),), b"{}"
)
self.render(request)
self.assertEquals(200, channel.code, channel.result)

self.room_list_handler = hs.get_room_list_handler()
Expand All @@ -452,7 +449,6 @@ def test_disabling_room_list(self):

# Room list is enabled so we should get some results
request, channel = self.make_request("GET", b"publicRooms")
self.render(request)
self.assertEquals(200, channel.code, channel.result)
self.assertTrue(len(channel.json_body["chunk"]) > 0)

Expand All @@ -461,7 +457,6 @@ def test_disabling_room_list(self):

# Room list disabled so we should get no results
request, channel = self.make_request("GET", b"publicRooms")
self.render(request)
self.assertEquals(200, channel.code, channel.result)
self.assertTrue(len(channel.json_body["chunk"]) == 0)

Expand All @@ -470,5 +465,4 @@ def test_disabling_room_list(self):
request, channel = self.make_request(
"PUT", b"directory/list/room/%s" % (room_id.encode("ascii"),), b"{}"
)
self.render(request)
self.assertEquals(403, channel.code, channel.result)
1 change: 0 additions & 1 deletion tests/handlers/test_message.py
Original file line number Diff line number Diff line change
Expand Up @@ -209,5 +209,4 @@ def test_deny_redact_server_acl(self):
request, channel = self.make_request(
"POST", path, content={}, access_token=self.access_token
)
self.render(request)
self.assertEqual(int(channel.result["code"]), 403)
1 change: 0 additions & 1 deletion tests/handlers/test_typing.py
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,6 @@ def test_started_typing_remote_recv(self):
),
federation_auth_origin=b"farm",
)
self.render(request)
self.assertEqual(channel.code, 200)

self.on_new_event.assert_has_calls([call("typing_key", 1, rooms=[ROOM_ID])])
Expand Down
2 changes: 0 additions & 2 deletions tests/handlers/test_user_directory.py
Original file line number Diff line number Diff line change
Expand Up @@ -537,7 +537,6 @@ def test_disabling_room_list(self):
request, channel = self.make_request(
"POST", b"user_directory/search", b'{"search_term":"user2"}'
)
self.render(request)
self.assertEquals(200, channel.code, channel.result)
self.assertTrue(len(channel.json_body["results"]) > 0)

Expand All @@ -546,6 +545,5 @@ def test_disabling_room_list(self):
request, channel = self.make_request(
"POST", b"user_directory/search", b'{"search_term":"user2"}'
)
self.render(request)
self.assertEquals(200, channel.code, channel.result)
self.assertTrue(len(channel.json_body["results"]) == 0)
4 changes: 1 addition & 3 deletions tests/http/test_additional_resource.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
from synapse.http.additional_resource import AdditionalResource
from synapse.http.server import respond_with_json

from tests.server import FakeSite, make_request, render
from tests.server import FakeSite, make_request
from tests.unittest import HomeserverTestCase


Expand Down Expand Up @@ -47,7 +47,6 @@ def test_async(self):
resource = AdditionalResource(self.hs, handler)

request, channel = make_request(self.reactor, FakeSite(resource), "GET", "/")
render(request, resource, self.reactor)

self.assertEqual(request.code, 200)
self.assertEqual(channel.json_body, {"some_key": "some_value_async"})
Expand All @@ -57,7 +56,6 @@ def test_sync(self):
resource = AdditionalResource(self.hs, handler)

request, channel = make_request(self.reactor, FakeSite(resource), "GET", "/")
render(request, resource, self.reactor)

self.assertEqual(request.code, 200)
self.assertEqual(channel.json_body, {"some_key": "some_value_sync"})
5 changes: 1 addition & 4 deletions tests/replication/_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
from synapse.util import Clock

from tests import unittest
from tests.server import FakeTransport, render
from tests.server import FakeTransport

try:
import hiredis
Expand Down Expand Up @@ -347,9 +347,6 @@ def _get_worker_hs_config(self) -> dict:
config["worker_replication_http_port"] = "8765"
return config

def render_on_worker(self, worker_hs: HomeServer, request: SynapseRequest):
render(request, self._hs_to_site[worker_hs].resource, self.reactor)

def replicate(self):
"""Tell the master side of replication that something has happened, and then
wait for the replication to occur.
Expand Down
4 changes: 0 additions & 4 deletions tests/replication/test_client_reader_shard.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@ def test_register_single_worker(self):
"register",
{"username": "user", "type": "m.login.password", "password": "bar"},
) # type: SynapseRequest, FakeChannel
self.render_on_worker(worker_hs, request_1)
self.assertEqual(request_1.code, 401)

# Grab the session
Expand All @@ -69,7 +68,6 @@ def test_register_single_worker(self):
"register",
{"auth": {"session": session, "type": "m.login.dummy"}},
) # type: SynapseRequest, FakeChannel
self.render_on_worker(worker_hs, request_2)
self.assertEqual(request_2.code, 200)

# We're given a registered user.
Expand All @@ -89,7 +87,6 @@ def test_register_multi_worker(self):
"register",
{"username": "user", "type": "m.login.password", "password": "bar"},
) # type: SynapseRequest, FakeChannel
self.render_on_worker(worker_hs_1, request_1)
self.assertEqual(request_1.code, 401)

# Grab the session
Expand All @@ -104,7 +101,6 @@ def test_register_multi_worker(self):
"register",
{"auth": {"session": session, "type": "m.login.dummy"}},
) # type: SynapseRequest, FakeChannel
self.render_on_worker(worker_hs_2, request_2)
self.assertEqual(request_2.code, 200)

# We're given a registered user.
Expand Down
4 changes: 2 additions & 2 deletions tests/replication/test_multi_media_repo.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,15 +68,15 @@ def _get_media_req(
the media which the caller should respond to.
"""
resource = hs.get_media_repository_resource().children[b"download"]
request, channel = make_request(
_, channel = make_request(
self.reactor,
FakeSite(resource),
"GET",
"/{}/{}".format(target, media_id),
shorthand=False,
access_token=self.access_token,
await_result=False,
)
request.render(resource)
self.pump()

clients = self.reactor.tcpClients
Expand Down
8 changes: 0 additions & 8 deletions tests/replication/test_sharded_event_persister.py
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,6 @@ def test_vector_clock_token(self):
request, channel = make_request(
self.reactor, sync_hs_site, "GET", "/sync", access_token=access_token
)
self.render_on_worker(sync_hs, request)
next_batch = channel.json_body["next_batch"]

# We now gut wrench into the events stream MultiWriterIdGenerator on
Expand Down Expand Up @@ -214,7 +213,6 @@ def test_vector_clock_token(self):
"/sync?since={}".format(next_batch),
access_token=access_token,
)
self.render_on_worker(sync_hs, request)

# We should only see the new event and nothing else
self.assertIn(room_id1, channel.json_body["rooms"]["join"])
Expand Down Expand Up @@ -245,7 +243,6 @@ def test_vector_clock_token(self):
"/sync?since={}".format(vector_clock_token),
access_token=access_token,
)
self.render_on_worker(sync_hs, request)

self.assertNotIn(room_id1, channel.json_body["rooms"]["join"])
self.assertIn(room_id2, channel.json_body["rooms"]["join"])
Expand All @@ -271,7 +268,6 @@ def test_vector_clock_token(self):
"/sync?since={}".format(next_batch),
access_token=access_token,
)
self.render_on_worker(sync_hs, request)

prev_batch1 = channel.json_body["rooms"]["join"][room_id1]["timeline"][
"prev_batch"
Expand All @@ -292,7 +288,6 @@ def test_vector_clock_token(self):
),
access_token=access_token,
)
self.render_on_worker(sync_hs, request)
self.assertListEqual([], channel.json_body["chunk"])

# Paginating back on the second room should produce the first event
Expand All @@ -306,7 +301,6 @@ def test_vector_clock_token(self):
),
access_token=access_token,
)
self.render_on_worker(sync_hs, request)
self.assertEqual(len(channel.json_body["chunk"]), 1)
self.assertEqual(
channel.json_body["chunk"][0]["event_id"], first_event_in_room2
Expand All @@ -322,7 +316,6 @@ def test_vector_clock_token(self):
),
access_token=access_token,
)
self.render_on_worker(sync_hs, request)
self.assertListEqual([], channel.json_body["chunk"])

request, channel = make_request(
Expand All @@ -334,7 +327,6 @@ def test_vector_clock_token(self):
),
access_token=access_token,
)
self.render_on_worker(sync_hs, request)
self.assertEqual(len(channel.json_body["chunk"]), 1)
self.assertEqual(
channel.json_body["chunk"][0]["event_id"], first_event_in_room2
Expand Down
Loading