Files
gpu-rent/tests/test_access_card.py
T
Leonid Pershin 5847eaab3f Add read-only Debug API support and update documentation
- Introduced a local read-only Debug API accessible at `http://127.0.0.1:17821` for diagnostics and agent interactions.
- Updated CLI commands to include `gpu-rent debug` for launching the Debug API.
- Enhanced documentation to reflect the new Debug API features and usage.
- Modified configuration to include `DEBUG_LOCAL_PORT` for easier customization.
- Added tests to ensure Debug API links are correctly generated in access card outputs.
2026-08-23 06:11:20 +03:00

75 lines
2.4 KiB
Python

from gpu_rent.access_card import collect_access_links, mcp_snippet_lines, render_access_panel
class _Cfg:
swarmui_local_port = 17801
llm_runtime = "ollama"
ollama_local_port = 17811
enable_swarmui = True
debug_local_port = 17821
def test_collect_links_swarm_and_ollama(monkeypatch):
monkeypatch.setattr(
"gpu_rent.access_card.load_state",
lambda: type("S", (), {"notes": {"llm_runtime": "ollama"}})(),
)
links = collect_access_links(_Cfg(), tunneled=True)
labels = [x.label for x in links]
assert "Debug API" in labels
assert "SwarmUI UI" in labels
assert "Assistent" in labels
assert "SwarmUI MCP" in labels
assert "Ollama API" in labels
assert any(x.label == "Assistent" and "вкладка" in x.note for x in links)
dbg = next(x for x in links if x.label == "Debug API")
assert dbg.url == "http://127.0.0.1:17821/"
def test_collect_links_no_tunnel():
links = collect_access_links(_Cfg(), tunneled=False)
assert links[0].label == "Debug API"
assert any(x.url.startswith("gpu-rent tunnel") for x in links)
def test_mcp_snippet_json():
lines = mcp_snippet_lines(_Cfg())
assert any("17801/mcp" in line for line in lines)
def test_access_panel_red_when_killer_failed(monkeypatch):
monkeypatch.setattr(
"gpu_rent.access_card.load_state",
lambda: type(
"S",
(),
{"notes": {"idle_killer": "failed", "idle_killer_error": "no cred"}},
)(),
)
panel = render_access_panel(_Cfg(), tunneled=True)
assert panel.border_style == "red"
def test_access_panel_hides_stale_llm_error_when_ollama_ok(monkeypatch):
monkeypatch.setattr(
"gpu_rent.access_card.load_state",
lambda: type(
"S",
(),
{
"notes": {
"llm_error": "Ollama /api/tags без моделей",
"stack_vm": [
{
"name": "ollama",
"ok": True,
"detail": "1 models (huihui_ai/qwen3-vl-abliterated:8b-instruct)",
}
],
}
},
)(),
)
panel = render_access_panel(_Cfg(), tunneled=True)
assert panel.border_style != "red"