コード例 #1
0
        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)