Skip to content

Commit 61895dd

Browse files
committed
Some more tests for basic request details
1 parent 8b5add8 commit 61895dd

File tree

1 file changed

+44
-8
lines changed

1 file changed

+44
-8
lines changed

tornado/test/asgi_test.py

Lines changed: 44 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,56 @@ def get(self):
1111
self.write(f"Hello, {name}")
1212

1313

14+
class InspectHandler(RequestHandler):
15+
def make_response(self, path_var):
16+
# Send the response as JSON
17+
self.finish(
18+
{
19+
"method": self.request.method,
20+
"path": self.request.path,
21+
"path_var": path_var,
22+
"query_params": {
23+
k: self.get_query_arguments(k) for k in self.request.query_arguments
24+
},
25+
"body": self.request.body.decode("latin1"),
26+
}
27+
)
28+
29+
def get(self, path_var):
30+
return self.make_response(path_var)
31+
32+
def post(self, path_var):
33+
return self.make_response(path_var)
34+
35+
1436
class AsyncASGITestCase(AsyncTestCase):
1537
def setUp(self) -> None:
1638
super().setUp()
1739
self.asgi_app = ASGIAdapter(
18-
Application(
19-
[
20-
(r"/", BasicHandler),
21-
]
22-
)
40+
Application([(r"/", BasicHandler), (r"/inspect(/.*)", InspectHandler)])
2341
)
42+
self.client = TestClient(self.asgi_app)
2443

25-
@gen_test(timeout=None)
44+
@gen_test(timeout=10)
2645
async def test_basic_request(self):
27-
client = TestClient(self.asgi_app)
28-
resp = await client.get("/?name=foo")
46+
resp = await self.client.get("/?name=foo")
2947
assert resp.status_code == 200
3048
assert resp.text == "Hello, foo"
49+
50+
@gen_test(timeout=10)
51+
async def test_get_request_details(self):
52+
resp = await self.client.get("/inspect/foo/?bar=baz")
53+
d = resp.json()
54+
assert d["method"] == "GET"
55+
assert d["path"] == "/inspect/foo/"
56+
assert d["query_params"] == {"bar": ["baz"]}
57+
assert d["body"] == ""
58+
59+
@gen_test(timeout=10)
60+
async def test_post_request_details(self):
61+
resp = await self.client.post("/inspect/foo/?bar=baz", data=b"123")
62+
d = resp.json()
63+
assert d["method"] == "POST"
64+
assert d["path"] == "/inspect/foo/"
65+
assert d["query_params"] == {"bar": ["baz"]}
66+
assert d["body"] == "123"

0 commit comments

Comments
 (0)