116 lines
4.3 KiB
Python
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)}"
|
|
)
|