url = "http://foo/" await self.assert_url_called(case, case.post_url(url, kw=1), "post", url, kw=1) async def assert_url_called(self, case, fut, method, url, **kwargs): case.url_request = AsyncMock("url_request") response = await fut assert response is case.url_request.coro.return_value case.url_request.coro.assert_called_once_with( method, url, **kwargs, ) @pytest.mark.asyncio async def test_url_request(self, *, case, mock_http_client): case.app._http_client = mock_http_client case._maybe_recover_from_failed_state = Mock() await case.url_request("get", "http://foo/") == "foo" case._maybe_recover_from_failed_state.assert_called_once_with() @pytest.mark.asyncio @pytest.mark.http_session(status_code=500, max_failures=None) async def test_url_request_fails(self, *, case, mock_http_client): case.on_suite_fail = AsyncMock() case.sleep = AsyncMock() case.app._http_client = mock_http_client await case.url_request("get", "http://foo/") is None case.on_suite_fail.assert_called_once_with(ANY) @pytest.mark.asyncio @pytest.mark.http_session(status_code=500, max_failures=3)