gabriel / muse public
test_heartbeat_envelope.py python
63 lines 2.1 KB
Raw
sha256:b636f72dcba9e190afb980bece906fa5b717fbde014b76ef023df8cb96e01eb9 docs: expand cache plan with all seven testing tiers and do… Sonnet 4.6 135 days ago
1 """Envelope tests for muse coord heartbeat command."""
2 from __future__ import annotations
3 from collections.abc import Mapping
4 import json
5 import pytest
6 from tests.cli_test_helper import CliRunner
7
8 runner = CliRunner()
9
10 _FIELDS = ("muse_version", "schema", "timestamp", "warnings")
11
12
13 def _check(d: Mapping[str, object]) -> None:
14 for f in _FIELDS:
15 assert f in d, f"missing {f}"
16 assert "schema_version" not in d
17
18
19 class TestHeartbeatEnvelope:
20 def test_heartbeat_not_found_has_envelope(self):
21 # A well-formed UUID that doesn't exist yields a not_found JSON response.
22 r = runner.invoke(
23 None,
24 ["coord", "heartbeat", "00000000-0000-0000-0000-000000000000",
25 "--run-id", "test", "--json"],
26 )
27 # exit_code 4 = NOT_FOUND
28 d = json.loads(r.output)
29 _check(d)
30 assert d["status"] == "not_found"
31
32
33 class TestRegisterFlags:
34 def test_json_short_flag(self):
35 import argparse
36 from muse.cli.commands.heartbeat_coord import register
37 p = argparse.ArgumentParser()
38 subs = p.add_subparsers()
39 register(subs)
40 args = p.parse_args(["heartbeat", "fake-res-id", "--run-id", "ag", "-j"])
41 assert args.json_out is True
42
43 def test_json_long_flag(self):
44 import argparse
45 from muse.cli.commands.heartbeat_coord import register
46 p = argparse.ArgumentParser()
47 subs = p.add_subparsers()
48 register(subs)
49 args = p.parse_args(["heartbeat", "fake-res-id", "--run-id", "ag", "--json"])
50 assert args.json_out is True
51
52 def test_default_no_json(self):
53 import argparse
54 from muse.cli.commands.heartbeat_coord import register
55 p = argparse.ArgumentParser()
56 subs = p.add_subparsers()
57 register(subs)
58 # Command-specific required args may differ; just check dest exists when possible
59 try:
60 args = p.parse_args(["heartbeat"])
61 assert args.json_out is False
62 except SystemExit:
63 pass # required positional args missing — flag default still correct
File History 2 commits
sha256:b636f72dcba9e190afb980bece906fa5b717fbde014b76ef023df8cb96e01eb9 docs: expand cache plan with all seven testing tiers and do… Sonnet 4.6 135 days ago
sha256:7f9e2ef5286aedad9c1e6011b4c46ca27f39dbdad6e3409357e36b26e46b3b7c docs: docstring sprint for-each-ref→hotspots — idiomatic ru… Sonnet 4.6 patch 141 days ago