def test_request_retrieval_with_more_than_one(httpx_mock: HTTPXMock): httpx_mock.add_response() with httpx.Client() as client: client.get("http://test_url", headers={"X-TEST": "test header 1"}) client.get("http://test_url", headers={"X-TEST": "test header 2"}) httpx_mock.get_request(url=httpx.URL("http://test_url"))
def test_default_request_retrieval(httpx_mock: HTTPXMock): httpx_mock.add_response() with httpx.Client() as client: client.post("http://test_url", headers={"X-TEST": "test header 1"}) request = httpx_mock.get_request() assert request.headers["x-test"] == "test header 1"
def test_request_retrieval_on_same_method(httpx_mock: HTTPXMock): httpx_mock.add_response() with httpx.Client() as client: client.get("http://test_url", headers={"X-TEST": "test header 1"}) client.post("http://test_url", headers={"X-TEST": "test header 2"}) request = httpx_mock.get_request(method="GET") assert request.headers["x-test"] == "test header 1"
async def test_request_retrieval_on_same_url(httpx_mock: HTTPXMock): httpx_mock.add_response() async with httpx.AsyncClient() as client: await client.get("http://test_url", headers={"X-TEST": "test header 1"}) await client.get("http://test_url2", headers={"X-TEST": "test header 2"}) request = httpx_mock.get_request(url=httpx.URL("http://test_url")) assert request.headers["x-test"] == "test header 1"
async def test_request_with_pattern_in_url(httpx_mock: HTTPXMock): httpx_mock.add_response(url="http://test_url") httpx_mock.add_response(url="http://unmatched") async with httpx.AsyncClient() as client: await client.get("http://unmatched") await client.get("http://test_url", headers={"X-Test": "1"}) assert httpx_mock.get_request(url=re.compile(".*test.*")).headers["x-test"] == "1"
async def test_requests_retrieval(httpx_mock: HTTPXMock): httpx_mock.add_response(url="http://test_url", method="GET", data=b"test content 1") httpx_mock.add_response( url="http://test_url", method="POST", data=b"test content 2" ) httpx_mock.add_response(url="http://test_url", method="PUT", data=b"test content 3") httpx_mock.add_response( url="http://test_url", method="DELETE", data=b"test content 4" ) httpx_mock.add_response( url="http://test_url", method="PATCH", data=b"test content 5" ) httpx_mock.add_response( url="http://test_url", method="HEAD", data=b"test content 6" ) async with httpx.AsyncClient() as client: await client.post("http://test_url", data=b"sent content 2") await client.get("http://test_url", headers={"X-TEST": "test header 1"}) await client.put("http://test_url", data=b"sent content 3") await client.head("http://test_url") await client.patch("http://test_url", data=b"sent content 5") await client.delete("http://test_url", headers={"X-Test": "test header 4"}) assert ( httpx_mock.get_request(url=httpx.URL("http://test_url"), method="PATCH").read() == b"sent content 5" ) assert ( httpx_mock.get_request(url=httpx.URL("http://test_url"), method="HEAD").read() == b"" ) assert ( httpx_mock.get_request(url=httpx.URL("http://test_url"), method="PUT").read() == b"sent content 3" ) assert ( httpx_mock.get_request(url=httpx.URL("http://test_url"), method="GET").headers[ "x-test" ] == "test header 1" ) assert ( httpx_mock.get_request(url=httpx.URL("http://test_url"), method="POST").read() == b"sent content 2" ) assert ( httpx_mock.get_request( url=httpx.URL("http://test_url"), method="DELETE" ).headers["x-test"] == "test header 4" )