Python · 2169 bytes Raw Blame History
1 """Smoke tests: the package imports and the CLI boots."""
2
3 from __future__ import annotations
4
5 import subprocess
6 import sys
7
8 from typer.testing import CliRunner
9
10 import dlm
11 from dlm.cli.app import app
12
13
14 def test_package_version_is_set() -> None:
15 assert dlm.__version__
16 assert dlm.__version__ != "0.0.0+unknown", (
17 "package must be installed via uv sync / pip install for version lookup"
18 )
19
20
21 def test_cli_version_flag() -> None:
22 runner = CliRunner()
23 result = runner.invoke(app, ["--version"])
24 assert result.exit_code == 0, result.output
25 assert result.output.strip() == f"dlm {dlm.__version__}"
26
27
28 def test_cli_help_lists_all_v1_subcommands() -> None:
29 runner = CliRunner()
30 result = runner.invoke(app, ["--help"])
31 assert result.exit_code == 0
32 expected = {
33 "init",
34 "train",
35 "prompt",
36 "export",
37 "pack",
38 "unpack",
39 "doctor",
40 "show",
41 "migrate",
42 }
43 for name in expected:
44 assert name in result.output, f"`dlm --help` missing subcommand {name!r}"
45
46
47 def test_cli_has_every_documented_subcommand() -> None:
48 """Every v1.0 subcommand is wired (Sprint 14 landed the last pair).
49
50 Replaces the older 'stub raises NotImplementedError' smoke: no stubs
51 remain after Sprints 13 + 14. Re-introduce a targeted stub test if a
52 future sprint re-adds a placeholder command.
53 """
54 runner = CliRunner()
55 result = runner.invoke(app, ["--help"])
56 assert result.exit_code == 0, result.output
57 expected_commands = {
58 "init",
59 "train",
60 "prompt",
61 "export",
62 "pack",
63 "unpack",
64 "doctor",
65 "show",
66 "migrate",
67 }
68 for name in expected_commands:
69 assert name in result.output, f"`dlm --help` missing {name!r}"
70
71
72 def test_python_module_entrypoint_runs() -> None:
73 """`python -m dlm --version` works (packaging sanity)."""
74 result = subprocess.run(
75 [sys.executable, "-m", "dlm", "--version"],
76 check=True,
77 capture_output=True,
78 text=True,
79 timeout=10,
80 )
81 assert result.stdout.strip() == f"dlm {dlm.__version__}"