MCPcopy
hub / github.com/nonebot/nonebot2 / test_http_client

Function test_http_client

tests/test_driver.py:232–387  ·  view source on GitHub ↗
(driver: Driver, server_url: URL)

Source from the content-addressed store, hash-verified

230 indirect=True,
231)
232async def test_http_client(driver: Driver, server_url: URL):
233 assert isinstance(driver, HTTPClientMixin)
234
235 # simple post with query, headers, cookies and content
236 request = Request(
237 "POST",
238 server_url,
239 params={"param": "test"},
240 headers={"X-Test": "test"},
241 cookies={"session": "test"},
242 content="test",
243 timeout=Timeout(total=4, connect=2, read=2),
244 )
245 response = await driver.request(request)
246 assert server_url.host is not None
247 request_raw_url = Request(
248 "POST",
249 (
250 server_url.scheme.encode("ascii"),
251 server_url.host.encode("ascii"),
252 server_url.port,
253 server_url.path.encode("ascii"),
254 ),
255 params={"param": "test"},
256 headers={"X-Test": "test"},
257 cookies={"session": "test"},
258 content="test",
259 timeout=Timeout(total=4, connect=2, read=2),
260 )
261 assert request.url == request_raw_url.url, (
262 "request.url should be equal to request_raw_url.url"
263 )
264 assert response.status_code == 200
265 assert response.content
266 data = json.loads(response.content)
267 assert data["method"] == "POST"
268 assert data["args"] == {"param": "test"}
269 assert data["headers"].get("X-Test") == "test"
270 assert data["headers"].get("Cookie") == "session=test"
271 assert data["data"] == "test"
272
273 # post with data body
274 request = Request("POST", server_url, data={"form": "test"})
275 response = await driver.request(request)
276 assert response.status_code == 200
277 assert response.content
278 data = json.loads(response.content)
279 assert data["method"] == "POST"
280 assert data["form"] == {"form": "test"}
281
282 # post with json body
283 request = Request("POST", server_url, json={"json": "test"})
284 response = await driver.request(request)
285 assert response.status_code == 200
286 assert response.content
287 data = json.loads(response.content)
288 assert data["method"] == "POST"
289 assert data["json"] == {"json": "test"}

Callers

nothing calls this directly

Calls 7

TimeoutClass · 0.85
appendMethod · 0.80
RequestClass · 0.50
requestMethod · 0.45
getMethod · 0.45
stream_requestMethod · 0.45
joinMethod · 0.45

Tested by

no test coverage detected