| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- 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()
|