from __future__ import annotations import argparse import json import pytest import pyro_mcp.doctor as doctor_module from pyro_mcp.runtime import DEFAULT_PLATFORM def test_doctor_main_prints_json( monkeypatch: pytest.MonkeyPatch, capsys: pytest.CaptureFixture[str], ) -> None: class StubParser: def parse_args(self) -> argparse.Namespace: return argparse.Namespace(platform="linux-x86_64", environment="debian:12") monkeypatch.setattr(doctor_module, "_build_parser", lambda: StubParser()) monkeypatch.setattr( doctor_module, "doctor_report", lambda *, platform, environment: { "platform": platform, "environment": environment, "runtime_ok": True, "issues": [], }, ) doctor_module.main() output = json.loads(capsys.readouterr().out) assert output["runtime_ok"] is True def test_doctor_build_parser_defaults_platform() -> None: parser = doctor_module._build_parser() args = parser.parse_args([]) assert args.platform == DEFAULT_PLATFORM assert args.environment == "debian:12"