Menu

#184 test(cli): smoke-test help for every command

closed
nobody
None
2026-08-14
2026-07-29
Anonymous
No

Originally created by: snowyukitty

Slice

  • Repo: doberman-core
  • Feature / Slice: [#176] — Smoke-test --help for every Typer command and group
  • Plan reference: Issue [#176]

What this PR does

  • adds an explicit matrix for the root app and every public command and command group
  • invokes each target with --help and verifies exit code 0, the complete usage path, and no traceback
  • automatically requires every eager registration while documenting how dynamic commands stay synchronized
  • preserves the existing startup guard against importing optional scientific and enterprise packages

Closes [#176]

Tests added (run in CI)

  • pytest tests/unit/test_cli_help.py -q: 31 passed
  • CLI-pattern unit suite: passed with 2 skipped
  • ruff check .
  • ruff format --check .
  • lint-imports: 2 contracts kept, 0 broken
  • pytest --cov=doberman --cov-report=term-missing --cov-fail-under=80: 2161 passed, 5 skipped; 91.97% coverage

Public-release safety (doberman-core only)

  • [x] Contains nothing from the "not allowed" list: no enterprise/hosted code, no proprietary detection, no customer data, no secrets, no commercial-license code
  • [x] Core still builds/tests/runs with NO enterprise package installed

Security checklist

  • [x] Fails closed on error / uncertainty (runtime behavior is unchanged)
  • [x] No secret, full file, or unredacted prompt logged or committed
  • [x] Any guardrail/learning change is raise-only (no guardrail or learning behavior changed)
  • [x] Every BLOCK/AUTH carries reason codes + a human explanation (not affected)
  • [x] doberman-core does not import doberman_enterprise

Edge cases covered / Deviations from plan / Risks introduced

  • The matrix is intentionally explicit so dynamically discovered commands can be listed without invoking option callbacks, prompts, network access, or persistent state during discovery.
  • The eager-registration guard rejects missing ordinary commands and duplicate matrix entries.
  • Usage-path validation catches stale nested targets even when Click's eager --help handling exits successfully at a parent command.
  • Whitespace normalization keeps wrapped Rich help output deterministic for long valid command paths.
  • This is a test-only change; runtime behavior and public CLI text are unchanged.

AI assistance

AI assistance disclosure: This PR was developed with assistance from OpenAI Codex.

Related

Tickets: #132
Tickets: #176
Tickets: #231

Discussion

  • Anonymous

    Anonymous - 2026-07-30

    Ticket changed by: fu351

    • status: open --> closed
     
  • Anonymous

    Anonymous - 2026-08-11

    Originally posted by: fu351

    As mentioned in the other PR review would love for you to work on [#200] as it directly follows on from the work you've already done, but also very happy for you to work on any of the other issues.
    I'm about to make a linkedin post shouting out all the great contributions so far so if you could drop your linkedin handle that would be great!
    @snowyukitty

     

    Related

    Tickets: #200

  • Anonymous

    Anonymous - 2026-08-14

    Originally posted by: snowyukitty

    Thank you — that’s very kind of you, and I really appreciate both the invitation and the shout-out. [#200] does look like a natural follow-on from the plugin work; I’ll take a careful look and follow up on the issue separately.

    I’m not very active on LinkedIn, so please feel free to credit me as snowyukitty on GitHub instead. Thanks again!

     

    Related

    Tickets: #200


Log in to post a comment.