geo/backend/tests/test_services/test_adapter_registration.py

116 lines
4.3 KiB
Python

import pytest
from app.services.ai_engine.base import EngineType
class TestAllAdaptersRegistered:
def test_all_nine_adapters_in_adapter_classes(self):
from app.services.ai_engine.batch_query import _ADAPTER_CLASSES
registered_types = set(_ADAPTER_CLASSES.keys())
expected_types = {
EngineType.CHATGPT,
EngineType.PERPLEXITY,
EngineType.KIMI,
EngineType.WENXIN,
EngineType.DOUBAO,
EngineType.YUANBAO,
EngineType.DEEPSEEK,
EngineType.QWEN,
EngineType.GEMINI,
}
assert registered_types == expected_types, (
f"Missing adapters: {expected_types - registered_types}. "
f"Extra adapters: {registered_types - expected_types}"
)
def test_adapter_classes_has_nine_entries(self):
from app.services.ai_engine.batch_query import _ADAPTER_CLASSES
assert len(_ADAPTER_CLASSES) == 9, (
f"Expected 9 adapters, got {len(_ADAPTER_CLASSES)}"
)
def test_deepseek_adapter_registered(self):
from app.services.ai_engine.batch_query import _ADAPTER_CLASSES
from app.services.ai_engine.deepseek import DeepSeekAdapter
assert EngineType.DEEPSEEK in _ADAPTER_CLASSES
assert _ADAPTER_CLASSES[EngineType.DEEPSEEK] == DeepSeekAdapter
def test_qwen_adapter_registered(self):
from app.services.ai_engine.batch_query import _ADAPTER_CLASSES
from app.services.ai_engine.qwen import QwenAdapter
assert EngineType.QWEN in _ADAPTER_CLASSES
assert _ADAPTER_CLASSES[EngineType.QWEN] == QwenAdapter
def test_gemini_adapter_registered(self):
from app.services.ai_engine.batch_query import _ADAPTER_CLASSES
from app.services.ai_engine.gemini import GeminiAdapter
assert EngineType.GEMINI in _ADAPTER_CLASSES
assert _ADAPTER_CLASSES[EngineType.GEMINI] == GeminiAdapter
def test_chatgpt_adapter_registered(self):
from app.services.ai_engine.batch_query import _ADAPTER_CLASSES
from app.services.ai_engine.chatgpt import ChatGPTAdapter
assert EngineType.CHATGPT in _ADAPTER_CLASSES
assert _ADAPTER_CLASSES[EngineType.CHATGPT] == ChatGPTAdapter
def test_perplexity_adapter_registered(self):
from app.services.ai_engine.batch_query import _ADAPTER_CLASSES
from app.services.ai_engine.perplexity import PerplexityAdapter
assert EngineType.PERPLEXITY in _ADAPTER_CLASSES
assert _ADAPTER_CLASSES[EngineType.PERPLEXITY] == PerplexityAdapter
def test_kimi_adapter_registered(self):
from app.services.ai_engine.batch_query import _ADAPTER_CLASSES
from app.services.ai_engine.kimi import KimiAdapter
assert EngineType.KIMI in _ADAPTER_CLASSES
assert _ADAPTER_CLASSES[EngineType.KIMI] == KimiAdapter
def test_wenxin_adapter_registered(self):
from app.services.ai_engine.batch_query import _ADAPTER_CLASSES
from app.services.ai_engine.wenxin import WenxinAdapter
assert EngineType.WENXIN in _ADAPTER_CLASSES
assert _ADAPTER_CLASSES[EngineType.WENXIN] == WenxinAdapter
def test_doubao_adapter_registered(self):
from app.services.ai_engine.batch_query import _ADAPTER_CLASSES
from app.services.ai_engine.doubao import DoubaoAdapter
assert EngineType.DOUBAO in _ADAPTER_CLASSES
assert _ADAPTER_CLASSES[EngineType.DOUBAO] == DoubaoAdapter
def test_yuanbao_adapter_registered(self):
from app.services.ai_engine.batch_query import _ADAPTER_CLASSES
from app.services.ai_engine.yuanbao import YuanbaoAdapter
assert EngineType.YUANBAO in _ADAPTER_CLASSES
assert _ADAPTER_CLASSES[EngineType.YUANBAO] == YuanbaoAdapter
class TestBatchServiceWithAllAdapters:
def test_batch_service_builds_all_adapters(self):
from app.services.ai_engine.batch_query import _build_adapters
adapters = _build_adapters()
expected_engines = [
"chatgpt", "perplexity", "kimi", "wenxin", "doubao",
"yuanbao", "deepseek", "qwen", "gemini"
]
for engine in expected_engines:
assert engine in adapters, f"Missing adapter: {engine}"
assert len(adapters) == 9, (
f"Expected 9 adapters built, got {len(adapters)}"
)