mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-05-24 05:28:43 +08:00
90 lines
2.4 KiB
Python
90 lines
2.4 KiB
Python
import os
|
|
|
|
import pytest
|
|
from _pytest.monkeypatch import MonkeyPatch
|
|
from elasticsearch import Elasticsearch
|
|
|
|
from core.rag.datasource.vdb.field import Field
|
|
|
|
|
|
class MockIndicesClient:
|
|
def __init__(self):
|
|
pass
|
|
|
|
def create(self, index, mappings, settings):
|
|
return {"acknowledge": True}
|
|
|
|
def refresh(self, index):
|
|
return {"acknowledge": True}
|
|
|
|
def delete(self, index):
|
|
return {"acknowledge": True}
|
|
|
|
def exists(self, index):
|
|
return True
|
|
|
|
|
|
class MockClient:
|
|
def __init__(self, **kwargs):
|
|
self.indices = MockIndicesClient()
|
|
|
|
def index(self, **kwargs):
|
|
return {"acknowledge": True}
|
|
|
|
def exists(self, **kwargs):
|
|
return True
|
|
|
|
def delete(self, **kwargs):
|
|
return {"acknowledge": True}
|
|
|
|
def search(self, **kwargs):
|
|
return {
|
|
"took": 1,
|
|
"hits": {
|
|
"hits": [
|
|
{
|
|
"_source": {
|
|
Field.CONTENT_KEY.value: "abcdef",
|
|
Field.VECTOR.value: [1, 2],
|
|
Field.METADATA_KEY.value: {},
|
|
},
|
|
"_score": 1.0,
|
|
},
|
|
{
|
|
"_source": {
|
|
Field.CONTENT_KEY.value: "123456",
|
|
Field.VECTOR.value: [2, 2],
|
|
Field.METADATA_KEY.value: {},
|
|
},
|
|
"_score": 0.9,
|
|
},
|
|
{
|
|
"_source": {
|
|
Field.CONTENT_KEY.value: "a1b2c3",
|
|
Field.VECTOR.value: [3, 2],
|
|
Field.METADATA_KEY.value: {},
|
|
},
|
|
"_score": 0.8,
|
|
},
|
|
]
|
|
},
|
|
}
|
|
|
|
|
|
MOCK = os.getenv("MOCK_SWITCH", "false").lower() == "true"
|
|
|
|
|
|
@pytest.fixture
|
|
def setup_client_mock(request, monkeypatch: MonkeyPatch):
|
|
if MOCK:
|
|
monkeypatch.setattr(Elasticsearch, "__init__", MockClient.__init__)
|
|
monkeypatch.setattr(Elasticsearch, "index", MockClient.index)
|
|
monkeypatch.setattr(Elasticsearch, "exists", MockClient.exists)
|
|
monkeypatch.setattr(Elasticsearch, "delete", MockClient.delete)
|
|
monkeypatch.setattr(Elasticsearch, "search", MockClient.search)
|
|
|
|
yield
|
|
|
|
if MOCK:
|
|
monkeypatch.undo()
|