- Updated the `render_access_panel` function to conditionally hide LLM errors when the Ollama model is operational, improving user experience by reducing unnecessary error visibility. - Introduced a new `_notes_from_disk` function to streamline the retrieval of notes from disk, enhancing state management during GPU environment checks. - Refactored error handling in the `_bind_access` function to ensure that stack and GPU environment errors are accurately recorded and managed, improving robustness in session state updates. - Added tests to validate the new behavior of error handling and state management, ensuring that LLM errors are appropriately suppressed when conditions are met.
69 lines
2.1 KiB
Python
69 lines
2.1 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
|
|
|
|
|
|
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 "SwarmUI UI" in labels
|
|
assert "SwarmUI MCP" in labels
|
|
assert "Ollama API" in labels
|
|
assert any("17811" in x.url for x in links)
|
|
|
|
|
|
def test_collect_links_no_tunnel():
|
|
links = collect_access_links(_Cfg(), tunneled=False)
|
|
assert links[0].url.startswith("gpu-rent tunnel")
|
|
|
|
|
|
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/qwen2.5-vl-abliterated:7b)",
|
|
}
|
|
],
|
|
}
|
|
},
|
|
)(),
|
|
)
|
|
panel = render_access_panel(_Cfg(), tunneled=True)
|
|
assert panel.border_style != "red"
|