"""CLI smoke tests: import chain, command registration, --help exit codes.""" from click.testing import CliRunner from mytoolkit.cli import cli def test_top_level_help(): result = CliRunner().invoke(cli, ["--help"]) assert result.exit_code == 0 assert "convert" in result.output def test_every_registered_command_help(): """Every top-level command/group must respond to --help cleanly. Catches broken imports and registration mistakes — the most common ways a CLI dies. """ assert len(cli.commands) >= 15, "suspiciously few commands registered" for name in sorted(cli.commands): result = CliRunner().invoke(cli, [name, "--help"]) assert result.exit_code == 0, f"{name} --help failed:\n{result.output}" def test_info_paths(): result = CliRunner().invoke(cli, ["info", "paths"]) assert result.exit_code == 0 for key in ("package:", "templates:", "references:", "scaffolds:"): assert key in result.output def test_info_docs_convert(): result = CliRunner().invoke(cli, ["info", "docs", "convert"]) assert result.exit_code == 0 assert result.output.strip(), "info docs convert printed nothing" def test_info_docs_missing_name_fails(): result = CliRunner().invoke(cli, ["info", "docs", "no-such-doc"]) assert result.exit_code != 0