HearthNet-Nemotron / tests /test_phase1_emergency_snapshot.py
GitHub Actions
Build Phase 1 HearthNet Space
9fb722e
Raw
History Blame
1.29 kB
from __future__ import annotations
from hearthnet.controller import HearthNetController
from hearthnet.node import InMemoryNetwork
def test_emergency_snapshot_deregisters_internet_capabilities_and_tightens_pruning() -> None:
network = InMemoryNetwork()
node = network.add_node("ed25519:node", "node")
node.install_demo_services(internet_llm=True)
controller = HearthNetController(node)
before = controller.snapshot()
before_caps = {cap["name"] for cap in before["topology"].capabilities_local}
assert "llm.chat" in before_caps
offline = controller.apply_emergency_probe(
{"1.1.1.1": False, "8.8.8.8": False, "cloudflare.com": True, "quad9.net": True}
)
offline_caps = {cap["name"] for cap in offline["topology"].capabilities_local}
assert offline["emergency"].mode == "offline"
assert "llm.chat" not in offline_caps
assert node.peers.prune_stale_seconds == 30
restored = controller.apply_emergency_probe(
{"1.1.1.1": True, "8.8.8.8": True, "cloudflare.com": True, "quad9.net": True}
)
restored_caps = {cap["name"] for cap in restored["topology"].capabilities_local}
assert restored["emergency"].mode == "online"
assert "llm.chat" in restored_caps
assert node.peers.prune_stale_seconds == 90