| import sys |
| from pathlib import Path |
| from types import SimpleNamespace |
|
|
| BACKEND_ROOT = Path(__file__).resolve().parents[1] |
| if str(BACKEND_ROOT) not in sys.path: |
| sys.path.insert(0, str(BACKEND_ROOT)) |
|
|
| from app.services.model import ModelService |
| from app.services.provider import ProviderService |
|
|
|
|
| def _provider(provider_id: str): |
| return { |
| "id": provider_id, |
| "name": "DeepSeek", |
| "api_key": "sk-test", |
| "base_url": "https://api.deepseek.com", |
| } |
|
|
|
|
| def test_get_all_models_by_id_accepts_plain_model_list(monkeypatch): |
| monkeypatch.setattr(ProviderService, "get_provider_by_id", _provider) |
| monkeypatch.setattr( |
| ModelService, |
| "get_model_list", |
| lambda provider_id, verbose=False: [ |
| {"id": "deepseek-chat", "object": "model"}, |
| {"id": "deepseek-reasoner", "object": "model"}, |
| ], |
| ) |
|
|
| result = ModelService.get_all_models_by_id("deepseek") |
|
|
| assert result == { |
| "models": [ |
| {"id": "deepseek-chat", "object": "model"}, |
| {"id": "deepseek-reasoner", "object": "model"}, |
| ] |
| } |
|
|
|
|
| def test_get_all_models_by_id_accepts_openai_page_data(monkeypatch): |
| monkeypatch.setattr(ProviderService, "get_provider_by_id", _provider) |
| monkeypatch.setattr( |
| ModelService, |
| "get_model_list", |
| lambda provider_id, verbose=False: SimpleNamespace( |
| data=[ |
| SimpleNamespace(model_dump=lambda: {"id": "gpt-4o-mini", "object": "model"}), |
| ] |
| ), |
| ) |
|
|
| result = ModelService.get_all_models_by_id("openai") |
|
|
| assert result == {"models": [{"id": "gpt-4o-mini", "object": "model"}]} |
|
|