mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-05-17 08:26:54 +08:00
37 lines
974 B
Python
37 lines
974 B
Python
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', None)
|
|
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()
|