mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-05-16 02:38:18 +08:00
35 lines
930 B
Python
35 lines
930 B
Python
import json
|
|
from typing import Literal
|
|
|
|
import httpx
|
|
import pytest
|
|
from _pytest.monkeypatch import MonkeyPatch
|
|
|
|
|
|
class MockedHttp:
|
|
@staticmethod
|
|
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
|
|
|
|
|
|
@pytest.fixture
|
|
def setup_http_mock(request, monkeypatch: MonkeyPatch):
|
|
monkeypatch.setattr(httpx, "request", MockedHttp.httpx_request)
|
|
yield
|
|
monkeypatch.undo()
|