mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-10-06 23:12:22 +02:00
45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
import json
|
|
|
|
import pytest
|
|
|
|
from src.agent_tools.model_interaction_tools import list_models
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_recommended_model_filter_uses_hardware_fit_backend(monkeypatch):
|
|
observed = {}
|
|
|
|
async def fake_app_api(content, owner=None):
|
|
observed.update({"args": json.loads(content), "owner": owner})
|
|
return {
|
|
"json": {
|
|
"system": {
|
|
"gpu_name": "Test GPU", "gpu_count": 2,
|
|
"gpu_vram_gb": 48, "backend": "cuda",
|
|
"cpu_name": "Test CPU", "total_ram_gb": 64,
|
|
},
|
|
"models": [{
|
|
"name": "org/model", "parameter_count": "30B", "quant": "Q4",
|
|
"required_gb": 20, "fit_level": "perfect", "run_mode": "gpu",
|
|
"speed_tps": 50, "score": 99, "context": 32768,
|
|
}],
|
|
},
|
|
"exit_code": 0,
|
|
}
|
|
|
|
monkeypatch.setattr("src.tools.system.do_app_api", fake_app_api)
|
|
|
|
result = await list_models("recommended", owner="pewds")
|
|
|
|
assert "GPU: Test GPU; count=2; total VRAM=48 GB" in result["output"]
|
|
assert "org/model: params=30B, quant=Q4, required=20 GB" in result["output"]
|
|
assert observed == {
|
|
"owner": "pewds",
|
|
"args": {
|
|
"action": "call",
|
|
"method": "GET",
|
|
"path": "/api/hwfit/models",
|
|
"query": {"fit_only": "true", "limit": 5, "sort": "fit"},
|
|
},
|
|
}
|