| | from unittest.mock import MagicMock, patch |
| |
|
| | import pytest |
| |
|
| | from core.rag.datasource.vdb.oceanbase.oceanbase_vector import ( |
| | OceanBaseVector, |
| | OceanBaseVectorConfig, |
| | ) |
| | from tests.integration_tests.vdb.__mock.tcvectordb import setup_tcvectordb_mock |
| | from tests.integration_tests.vdb.test_vector_store import ( |
| | AbstractVectorTest, |
| | get_example_text, |
| | setup_mock_redis, |
| | ) |
| |
|
| |
|
| | @pytest.fixture |
| | def oceanbase_vector(): |
| | return OceanBaseVector( |
| | "dify_test_collection", |
| | config=OceanBaseVectorConfig( |
| | host="127.0.0.1", |
| | port="2881", |
| | user="root@test", |
| | database="test", |
| | password="test", |
| | ), |
| | ) |
| |
|
| |
|
| | class OceanBaseVectorTest(AbstractVectorTest): |
| | def __init__(self, vector: OceanBaseVector): |
| | super().__init__() |
| | self.vector = vector |
| |
|
| | def search_by_vector(self): |
| | hits_by_vector = self.vector.search_by_vector(query_vector=self.example_embedding) |
| | assert len(hits_by_vector) == 0 |
| |
|
| | def search_by_full_text(self): |
| | hits_by_full_text = self.vector.search_by_full_text(query=get_example_text()) |
| | assert len(hits_by_full_text) == 0 |
| |
|
| | def text_exists(self): |
| | exist = self.vector.text_exists(self.example_doc_id) |
| | assert exist == True |
| |
|
| | def get_ids_by_metadata_field(self): |
| | ids = self.vector.get_ids_by_metadata_field(key="document_id", value=self.example_doc_id) |
| | assert len(ids) == 0 |
| |
|
| |
|
| | @pytest.fixture |
| | def setup_mock_oceanbase_client(): |
| | with patch("core.rag.datasource.vdb.oceanbase.oceanbase_vector.ObVecClient", new_callable=MagicMock) as mock_client: |
| | yield mock_client |
| |
|
| |
|
| | @pytest.fixture |
| | def setup_mock_oceanbase_vector(oceanbase_vector): |
| | with patch.object(oceanbase_vector, "_client"): |
| | yield oceanbase_vector |
| |
|
| |
|
| | def test_oceanbase_vector( |
| | setup_mock_redis, |
| | setup_mock_oceanbase_client, |
| | setup_mock_oceanbase_vector, |
| | oceanbase_vector, |
| | ): |
| | OceanBaseVectorTest(oceanbase_vector).run_all_tests() |
| |
|