fix: unify production and test invocation - #75
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
base_cli.testing.invoke()through the samerun_app()outcome and rendering boundary used by production entry points while preservingCliRunnercapture, home/env isolation, cwd restoration, and separated streams.reraise_unexpected=Truepreserves the original exception and supported Click 8.1 correctly captures safe stderr.--option=valueworks for application, standard, grouped, and sensitive options.Issue
Closes #53
Part of #50.
Validation
/Users/rameshhp/work/base-cli/.venv/bin/python -m compileall -q lib/python tests./tests/validate.sh/Users/rameshhp/work/base-cli/.venv/bin/python -m build --sdist --wheel --outdir <temporary-directory>/Users/rameshhp/work/base-cli/.venv/bin/python scripts/validate_package_artifact.py <temporary-directory>git diff --checkNotes
testing.invoke()remains backward compatible for its existing positional parameters. The newreraise_unexpectedswitch is keyword-only and defaults to production-safe rendering.CliRunnersemantics:result.exit_codecarries the status andresult.exceptionmay containSystemExit. Opting into re-raise exposes the original unexpected exception instead.run_app()status exactly once; it does not add a second Click parsing or exception-normalization boundary.Checklist
<category>/<issue>-<YYYYMMDD>-<slug>, and its category prefix matches the issue's single standard category label.Fixes #<issue>orCloses #<issue>when merge should close the issue.