honcho/tests/test_vector_reconciliation_...

52 lines
1.7 KiB
Python

"""Tests for vector reconciliation configuration logic.
These are unit tests that test configuration logic without requiring database
or vector store fixtures.
"""
from src.config import VectorStoreSettings
def test_reconciliation_enabled_pgvector_primary():
"""Reconciliation enabled when pgvector is primary with secondary"""
settings = VectorStoreSettings(
PRIMARY_TYPE="pgvector",
SECONDARY_TYPE="turbopuffer",
TURBOPUFFER_API_KEY="test-key",
)
assert settings.should_run_reconciliation is True
def test_reconciliation_enabled_pgvector_secondary():
"""Reconciliation enabled when pgvector is secondary"""
settings = VectorStoreSettings(
PRIMARY_TYPE="turbopuffer",
SECONDARY_TYPE="pgvector",
TURBOPUFFER_API_KEY="test-key",
)
assert settings.should_run_reconciliation is True
def test_reconciliation_disabled_single_store():
"""Reconciliation disabled when no secondary configured"""
settings = VectorStoreSettings(
PRIMARY_TYPE="turbopuffer", TURBOPUFFER_API_KEY="test-key", SECONDARY_TYPE=None
)
assert settings.should_run_reconciliation is False
def test_reconciliation_disabled_no_pgvector():
"""Reconciliation disabled when both stores are non-pgvector"""
settings = VectorStoreSettings(
PRIMARY_TYPE="turbopuffer",
SECONDARY_TYPE="lancedb",
TURBOPUFFER_API_KEY="test-key",
)
assert settings.should_run_reconciliation is False
def test_reconciliation_disabled_pgvector_only():
"""Reconciliation disabled when pgvector is primary but no secondary"""
settings = VectorStoreSettings(PRIMARY_TYPE="pgvector", SECONDARY_TYPE=None)
assert settings.should_run_reconciliation is False