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

Function test_http_client_session

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

Source from the content-addressed store, hash-verified

397 indirect=True,
398)
399async def test_http_client_session(driver: Driver, server_url: URL):
400 assert isinstance(driver, HTTPClientMixin)
401
402 session = driver.get_session(
403 params={"session": "test"},
404 headers={"X-Session": "test"},
405 cookies={"session": "test"},
406 )
407 request = Request("GET", server_url)
408 with pytest.raises(RuntimeError):
409 await session.request(request)
410
411 with pytest.raises(RuntimeError): # noqa: PT012
412 async with session:
413 async with session:
414 ...
415
416 async with session as session:
417 # simple post with query, headers, cookies and content
418 request = Request(
419 "POST",
420 server_url,
421 params={"param": "test"},
422 headers={"X-Test": "test"},
423 cookies={"cookie": "test"},
424 content="test",
425 timeout=Timeout(total=4, connect=2, read=2),
426 )
427 response = await session.request(request)
428 assert response.status_code == 200
429 assert response.content
430 data = json.loads(response.content)
431 assert data["method"] == "POST"
432 assert data["args"] == {"session": "test", "param": "test"}
433 assert data["headers"].get("X-Session") == "test"
434 assert data["headers"].get("X-Test") == "test"
435 assert {
436 key: cookie.value
437 for key, cookie in SimpleCookie(data["headers"].get("Cookie")).items()
438 } == {
439 "session": "test",
440 "cookie": "test",
441 }
442 assert data["data"] == "test"
443
444 # post with data body
445 request = Request("POST", server_url, data={"form": "test"})
446 response = await session.request(request)
447 assert response.status_code == 200
448 assert response.content
449 data = json.loads(response.content)
450 assert data["method"] == "POST"
451 assert data["args"] == {"session": "test"}
452 assert data["headers"].get("X-Session") == "test"
453 assert {
454 key: cookie.value
455 for key, cookie in SimpleCookie(data["headers"].get("Cookie")).items()
456 } == {"session": "test"}

Callers

nothing calls this directly

Calls 9

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

Tested by

no test coverage detected