Avoid blocking settings on CLI Apps catalog refresh

This commit is contained in:
chengyongru
2026-06-22 17:14:13 +08:00
committed by Xubin Ren
parent 7b153c5aa9
commit b8abe5542c
6 changed files with 243 additions and 33 deletions
+30
View File
@@ -270,6 +270,36 @@ def test_optional_extension_registry_failure_does_not_break_payload(
assert [app["name"] for app in payload["apps"]] == ["gimp"]
def test_payload_cache_only_does_not_fetch_catalog(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None:
manager = _manager(tmp_path)
_seed_catalog(manager)
def fail_get(*args, **kwargs):
raise AssertionError("network should not be used")
monkeypatch.setattr("nanobot.apps.cli.service.httpx.get", fail_get)
payload = manager.payload(cache_only=True)
assert payload["catalog_updated_at"] == "2026-04-18"
assert {app["name"] for app in payload["apps"]} >= {"gimp", "feishu"}
assert manager.catalog_cache_fresh() is True
def test_payload_cache_only_without_cache_returns_empty(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None:
manager = _manager(tmp_path)
def fail_get(*args, **kwargs):
raise AssertionError("network should not be used")
monkeypatch.setattr("nanobot.apps.cli.service.httpx.get", fail_get)
payload = manager.payload(cache_only=True)
assert payload == {"apps": [], "installed_count": 0, "catalog_updated_at": None}
assert manager.catalog_cache_fresh() is False
def test_install_dispatches_safe_pip_and_installs_skill(
tmp_path: Path,
monkeypatch: pytest.MonkeyPatch,