MCPcopy Create free account
hub / github.com/mitmproxy/mitmproxy / _test_echo

Function _test_echo

test/mitmproxy/addons/test_proxyserver.py:687–775  ·  view source on GitHub ↗
(client: H3Client, strict: bool)

Source from the content-addressed store, hash-verified

685
686
687async def _test_echo(client: H3Client, strict: bool) -> None:
688 def assert_no_data(response: H3Response):
689 if strict:
690 assert response.data is None
691 else:
692 assert not response.data
693
694 headers = [
695 (b":scheme", b"https"),
696 (b":authority", b"example.mitmproxy.org"),
697 (b":method", b"GET"),
698 (b":path", b"/test"),
699 ]
700 r1 = await client.request(
701 headers=headers + [(b"x-request", b"justheaders")],
702 data=None,
703 trailers=None,
704 ).wait_result()
705 assert r1.headers == [
706 (b":status", b"200"),
707 (b"x-response", b"justheaders"),
708 ]
709 assert_no_data(r1)
710 assert r1.trailers is None
711
712 r2 = await client.request(
713 headers=headers + [(b"x-request", b"hasdata")],
714 data=b"echo",
715 trailers=None,
716 ).wait_result()
717 assert r2.headers == [
718 (b":status", b"200"),
719 (b"x-response", b"hasdata"),
720 ]
721 assert r2.data == b"echo"
722 assert r2.trailers is None
723
724 r3 = await client.request(
725 headers=headers + [(b"x-request", b"nodata")],
726 data=None,
727 trailers=[(b"x-request", b"buttrailers")],
728 ).wait_result()
729 assert r3.headers == [
730 (b":status", b"200"),
731 (b"x-response", b"nodata"),
732 ]
733 assert_no_data(r3)
734 assert r3.trailers == [(b"x-response", b"buttrailers")]
735
736 r4 = await client.request(
737 headers=headers + [(b"x-request", b"this")],
738 data=b"has",
739 trailers=[(b"x-request", b"everything")],
740 ).wait_result()
741 assert r4.headers == [
742 (b":status", b"200"),
743 (b"x-response", b"this"),
744 ]

Callers 2

test_regular_http3Function · 0.70

Calls 6

assert_no_dataFunction · 0.85
wait_resultMethod · 0.80
send_stream_dataMethod · 0.80
transmitMethod · 0.80
requestMethod · 0.45
doneMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…