forked from innovacion/searchbox
Rename package to searchbox
This commit renames the package from vector-search-mcp to searchbox. The package imports and executable name are updated accordingly.
This commit is contained in:
@@ -3,8 +3,8 @@ from unittest.mock import AsyncMock, MagicMock, patch
|
||||
import pytest
|
||||
from qdrant_client import models
|
||||
|
||||
from vector_search_mcp.engine import get_engine
|
||||
from vector_search_mcp.models import Match, MatchAny, MatchExclude, SearchRow
|
||||
from searchbox.engine import get_engine
|
||||
from searchbox.models import Match, MatchAny, MatchExclude, SearchRow
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
|
||||
@@ -2,8 +2,8 @@ from typing import Any
|
||||
|
||||
import pytest
|
||||
|
||||
from vector_search_mcp.engine.base_engine import BaseEngine
|
||||
from vector_search_mcp.models import Condition, Match, MatchAny, SearchRow
|
||||
from searchbox.engine.base_engine import BaseEngine
|
||||
from searchbox.models import Condition, Match, MatchAny, SearchRow
|
||||
|
||||
|
||||
class MockEngine(BaseEngine[dict[str, Any], str, dict]):
|
||||
@@ -241,7 +241,7 @@ class IncompleteEngine(BaseEngine[str, int, str]):
|
||||
async def test_upload_chunk_workflow(self):
|
||||
"""Test the complete upload_chunk workflow"""
|
||||
engine = MockEngine()
|
||||
from vector_search_mcp.models import Chunk, ChunkData
|
||||
from searchbox.models import Chunk, ChunkData
|
||||
|
||||
chunk = Chunk(
|
||||
id="test-chunk-1",
|
||||
|
||||
@@ -2,9 +2,9 @@ from unittest.mock import MagicMock, patch
|
||||
|
||||
import pytest
|
||||
|
||||
from vector_search_mcp.engine import Backend, get_engine, UnknownEngineError
|
||||
from vector_search_mcp.engine.base_engine import BaseEngine
|
||||
from vector_search_mcp.engine.qdrant_engine import QdrantEngine
|
||||
from searchbox.engine import Backend, get_engine, UnknownEngineError
|
||||
from searchbox.engine.base_engine import BaseEngine
|
||||
from searchbox.engine.qdrant_engine import QdrantEngine
|
||||
|
||||
|
||||
class TestEngineFactory:
|
||||
@@ -19,10 +19,10 @@ class TestEngineFactory:
|
||||
"""Test get_engine returns QdrantEngine for QDRANT type"""
|
||||
with (
|
||||
patch(
|
||||
"vector_search_mcp.engine.qdrant_engine.Settings"
|
||||
"searchbox.engine.qdrant_engine.Settings"
|
||||
) as mock_settings_class,
|
||||
patch(
|
||||
"vector_search_mcp.engine.qdrant_engine.AsyncQdrantClient"
|
||||
"searchbox.engine.qdrant_engine.AsyncQdrantClient"
|
||||
) as mock_client_class,
|
||||
):
|
||||
# Setup mocks
|
||||
@@ -59,8 +59,8 @@ class TestEngineFactory:
|
||||
def test_get_engine_typing_literal_qdrant(self):
|
||||
"""Test that get_engine with literal QDRANT returns correct type"""
|
||||
with (
|
||||
patch("vector_search_mcp.engine.qdrant_engine.Settings"),
|
||||
patch("vector_search_mcp.engine.qdrant_engine.AsyncQdrantClient"),
|
||||
patch("searchbox.engine.qdrant_engine.Settings"),
|
||||
patch("searchbox.engine.qdrant_engine.AsyncQdrantClient"),
|
||||
):
|
||||
# When using literal Backend.QDRANT, mypy should know it's QdrantEngine
|
||||
engine = get_engine(Backend.QDRANT)
|
||||
@@ -73,8 +73,8 @@ class TestEngineFactory:
|
||||
def test_get_engine_typing_variable(self):
|
||||
"""Test that get_engine with variable returns BaseEngine type"""
|
||||
with (
|
||||
patch("vector_search_mcp.engine.qdrant_engine.Settings"),
|
||||
patch("vector_search_mcp.engine.qdrant_engine.AsyncQdrantClient"),
|
||||
patch("searchbox.engine.qdrant_engine.Settings"),
|
||||
patch("searchbox.engine.qdrant_engine.AsyncQdrantClient"),
|
||||
):
|
||||
# When using a variable, mypy should see it as BaseEngine
|
||||
engine_type: Backend = Backend.QDRANT
|
||||
@@ -88,10 +88,10 @@ class TestEngineFactory:
|
||||
"""Test that get_engine uses cache and returns same instances"""
|
||||
with (
|
||||
patch(
|
||||
"vector_search_mcp.engine.qdrant_engine.Settings"
|
||||
"searchbox.engine.qdrant_engine.Settings"
|
||||
) as mock_settings_class,
|
||||
patch(
|
||||
"vector_search_mcp.engine.qdrant_engine.AsyncQdrantClient"
|
||||
"searchbox.engine.qdrant_engine.AsyncQdrantClient"
|
||||
) as mock_client_class,
|
||||
):
|
||||
# Setup mocks
|
||||
@@ -135,10 +135,10 @@ class TestEngineFactory:
|
||||
"""Test complete factory integration with engine functionality"""
|
||||
with (
|
||||
patch(
|
||||
"vector_search_mcp.engine.qdrant_engine.Settings"
|
||||
"searchbox.engine.qdrant_engine.Settings"
|
||||
) as mock_settings_class,
|
||||
patch(
|
||||
"vector_search_mcp.engine.qdrant_engine.AsyncQdrantClient"
|
||||
"searchbox.engine.qdrant_engine.AsyncQdrantClient"
|
||||
) as mock_client_class,
|
||||
):
|
||||
# Setup mocks
|
||||
@@ -262,8 +262,8 @@ class TestEngineFactoryErrorHandling:
|
||||
def test_engine_initialization_failure(self):
|
||||
"""Test handling of engine initialization failures"""
|
||||
with (
|
||||
patch("vector_search_mcp.engine.qdrant_engine.Settings") as mock_settings,
|
||||
patch("vector_search_mcp.engine.qdrant_engine.AsyncQdrantClient"),
|
||||
patch("searchbox.engine.qdrant_engine.Settings") as mock_settings,
|
||||
patch("searchbox.engine.qdrant_engine.AsyncQdrantClient"),
|
||||
):
|
||||
# Make Settings initialization raise an exception
|
||||
mock_settings.side_effect = Exception("Settings initialization failed")
|
||||
|
||||
@@ -3,8 +3,8 @@ from unittest.mock import AsyncMock, MagicMock, patch
|
||||
import pytest
|
||||
from qdrant_client import models
|
||||
|
||||
from vector_search_mcp.engine import Backend, get_engine
|
||||
from vector_search_mcp.models import Match, MatchAny, MatchExclude, SearchRow
|
||||
from searchbox.engine import Backend, get_engine
|
||||
from searchbox.models import Match, MatchAny, MatchExclude, SearchRow
|
||||
|
||||
|
||||
class TestEngineIntegration:
|
||||
@@ -15,10 +15,10 @@ class TestEngineIntegration:
|
||||
"""Setup complete mocked engine environment"""
|
||||
with (
|
||||
patch(
|
||||
"vector_search_mcp.engine.qdrant_engine.Settings"
|
||||
"searchbox.engine.qdrant_engine.Settings"
|
||||
) as mock_settings_class,
|
||||
patch(
|
||||
"vector_search_mcp.engine.qdrant_engine.AsyncQdrantClient"
|
||||
"searchbox.engine.qdrant_engine.AsyncQdrantClient"
|
||||
) as mock_client_class,
|
||||
):
|
||||
# Setup settings
|
||||
@@ -347,8 +347,8 @@ class TestEngineIntegration:
|
||||
def test_engine_type_consistency(self):
|
||||
"""Test that engine types are consistent across multiple calls"""
|
||||
with (
|
||||
patch("vector_search_mcp.engine.qdrant_engine.Settings"),
|
||||
patch("vector_search_mcp.engine.qdrant_engine.AsyncQdrantClient"),
|
||||
patch("searchbox.engine.qdrant_engine.Settings"),
|
||||
patch("searchbox.engine.qdrant_engine.AsyncQdrantClient"),
|
||||
):
|
||||
engines = [get_engine(Backend.QDRANT) for _ in range(5)]
|
||||
|
||||
@@ -356,6 +356,6 @@ class TestEngineIntegration:
|
||||
assert all(engine is engines[0] for engine in engines)
|
||||
|
||||
# All should be QdrantEngine instances
|
||||
from vector_search_mcp.engine.qdrant_engine import QdrantEngine
|
||||
from searchbox.engine.qdrant_engine import QdrantEngine
|
||||
|
||||
assert all(isinstance(engine, QdrantEngine) for engine in engines)
|
||||
|
||||
@@ -4,9 +4,9 @@ import pytest
|
||||
from qdrant_client import models
|
||||
from qdrant_client.models import ScoredPoint
|
||||
|
||||
from vector_search_mcp.engine.base_engine import BaseEngine
|
||||
from vector_search_mcp.engine.qdrant_engine import QdrantEngine
|
||||
from vector_search_mcp.models import Match, MatchAny, MatchExclude, SearchRow
|
||||
from searchbox.engine.base_engine import BaseEngine
|
||||
from searchbox.engine.qdrant_engine import QdrantEngine
|
||||
from searchbox.models import Match, MatchAny, MatchExclude, SearchRow
|
||||
|
||||
|
||||
class TestQdrantEngine:
|
||||
@@ -30,10 +30,10 @@ class TestQdrantEngine:
|
||||
"""Create a QdrantEngine instance with mocked dependencies"""
|
||||
with (
|
||||
patch(
|
||||
"vector_search_mcp.engine.qdrant_engine.Settings"
|
||||
"searchbox.engine.qdrant_engine.Settings"
|
||||
) as mock_settings_class,
|
||||
patch(
|
||||
"vector_search_mcp.engine.qdrant_engine.AsyncQdrantClient"
|
||||
"searchbox.engine.qdrant_engine.AsyncQdrantClient"
|
||||
) as mock_client_class,
|
||||
):
|
||||
mock_settings_class.return_value = mock_settings
|
||||
@@ -159,7 +159,7 @@ class TestQdrantEngine:
|
||||
|
||||
def test_transform_chunk(self, qdrant_engine):
|
||||
"""Test transform_chunk method"""
|
||||
from vector_search_mcp.models import Chunk, ChunkData
|
||||
from searchbox.models import Chunk, ChunkData
|
||||
|
||||
chunk = Chunk(
|
||||
id="test-chunk-1",
|
||||
@@ -226,7 +226,7 @@ class TestQdrantEngine:
|
||||
@pytest.mark.asyncio
|
||||
async def test_upload_chunk_integration(self, qdrant_engine, mock_client):
|
||||
"""Test the complete upload_chunk workflow"""
|
||||
from vector_search_mcp.models import Chunk, ChunkData
|
||||
from searchbox.models import Chunk, ChunkData
|
||||
|
||||
# Setup mock response
|
||||
mock_response = MagicMock()
|
||||
@@ -468,10 +468,10 @@ class TestQdrantEngine:
|
||||
"""Test QdrantEngine initialization uses settings correctly"""
|
||||
with (
|
||||
patch(
|
||||
"vector_search_mcp.engine.qdrant_engine.Settings"
|
||||
"searchbox.engine.qdrant_engine.Settings"
|
||||
) as mock_settings_class,
|
||||
patch(
|
||||
"vector_search_mcp.engine.qdrant_engine.AsyncQdrantClient"
|
||||
"searchbox.engine.qdrant_engine.AsyncQdrantClient"
|
||||
) as mock_client_class,
|
||||
):
|
||||
mock_settings_class.return_value = mock_settings
|
||||
|
||||
Reference in New Issue
Block a user