FrameBridge 0.3.4 corresponding-source release

Snapshot assembled only from the signed corresponding-source archive.
Source archive SHA-256: db91a270cdefc4be79056ed38a0b4a16747e1ab130592645eac40fa3809809df
This commit is contained in:
FrameBridge release automation committed 2026-10-29 11:53:40 -04:00
1 parent b8c9b713d8
commit cdd980e1eb
993 files changed
+255481 -1720

No files matched your search

+70
View File
@@ -0,0 +1,70 @@
"""Exercise the public health command without starting a profile or transport."""
import contextlib
import io
import json
from pathlib import Path
import tempfile
from types import SimpleNamespace
import unittest
from unittest import mock
from framebridge_expanded import cli, health, __version__
class HealthCliTests(unittest.TestCase):
def invoke(self, arguments):
output, errors = io.StringIO(), io.StringIO()
with contextlib.redirect_stdout(output), contextlib.redirect_stderr(errors):
code = cli.main(arguments)
return code, output.getvalue(), errors.getvalue()
def test_absent_profile_is_reported_without_creating_it(self):
with tempfile.TemporaryDirectory() as temporary:
profile = Path(temporary) / "absent-profile"
code, text, _ = self.invoke(["--state-dir", str(profile), "--json", "health"])
self.assertFalse(profile.exists())
value = json.loads(text)
self.assertEqual(code, 1)
self.assertEqual(value["version"], __version__)
self.assertEqual(value["command"], "health")
self.assertTrue(value["ok"])
self.assertEqual(value["result"]["health"]["state"], "unconfigured")
self.assertFalse(value["result"]["health"]["healthy"])
self.assertTrue(value["result"]["read_only"])
def test_query_success_does_not_make_exit_status_healthy(self):
for state, healthy, expected in (("healthy", True, 0), ("paused", True, 0),
("degraded", False, 1), ("unavailable", None, 1)):
with self.subTest(state=state):
report = {"ok": True, "health": {"state": state, "healthy": healthy}}
module = SimpleNamespace(collect=mock.Mock(return_value=report))
with mock.patch.object(cli, "_module", return_value=module):
code, text, _ = self.invoke(["health", "--json"])
self.assertEqual(code, expected)
self.assertEqual(json.loads(text)["result"], report)
def test_failed_observation_cannot_pass_even_with_a_healthy_flag(self):
module = SimpleNamespace(collect=mock.Mock(return_value={"ok": False, "health": {"healthy": True}}))
with mock.patch.object(cli, "_module", return_value=module):
code, text, _ = self.invoke(["--json", "health"])
self.assertEqual(code, 1)
self.assertFalse(json.loads(text)["ok"])
def test_human_summary_names_the_local_machine_and_its_limits(self):
with tempfile.TemporaryDirectory() as temporary:
code, text, _ = self.invoke(["health", "--state-dir", str(Path(temporary) / "absent")])
self.assertEqual(code, 1)
self.assertIn("Target: LOCAL = this computer", text)
self.assertIn("unconfigured", text)
self.assertIn("not a fleet scan", text)
def test_json_output_never_prompts_for_authentication(self):
with tempfile.TemporaryDirectory() as temporary, mock.patch("builtins.input") as ask:
code, text, _ = self.invoke(["health", "--json", "--state-dir", str(Path(temporary) / "absent")])
ask.assert_not_called()
self.assertEqual(code, 1)
self.assertIsNone(json.loads(text)["result"]["software"]["runtime_version"])
if __name__ == "__main__":
unittest.main()