Spaces:
Paused
Paused
| import json | |
| from typing import Literal | |
| import httpx | |
| import pytest | |
| from _pytest.monkeypatch import MonkeyPatch | |
| class MockedHttp: | |
| def httpx_request( | |
| method: Literal["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD"], url: str, **kwargs | |
| ) -> httpx.Response: | |
| """ | |
| Mocked httpx.request | |
| """ | |
| request = httpx.Request( | |
| method, url, params=kwargs.get("params"), headers=kwargs.get("headers"), cookies=kwargs.get("cookies") | |
| ) | |
| data = kwargs.get("data") | |
| resp = json.dumps(data).encode("utf-8") if data else b"OK" | |
| response = httpx.Response( | |
| status_code=200, | |
| request=request, | |
| content=resp, | |
| ) | |
| return response | |
| def setup_http_mock(request, monkeypatch: MonkeyPatch): | |
| monkeypatch.setattr(httpx, "request", MockedHttp.httpx_request) | |
| yield | |
| monkeypatch.undo() | |