verdi config list
: Do not except if no profiles are defined
#5921
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.
Fixes #5920
The command should work if no profiles exist, in which case it should
simply list the global values, however, it was excepting since it
assumed that
ctx.obj.profile
would be set. This is set by theProfileParamType
which is used by the--profile
option, but this isnot called if no profiles are defined.
To create a regression test, the
empty_config
fixture is used.However, since this fixture works in memory, the
use_subprocess=False
switch has to be used for
run_cli_command
. This by default wouldpopulate the
ctx.obj.profile
object. This is normally done by the--profile
option, but this is not hit when usingclick.CliRunner
.This would nullify the test, as it would always pass, even without the
fix.
To solve this issue, a new argument
initialize_ctx_obj
is added to therun_cli_command
fixture. If set toFalse
, thectx.obj
is notinitialized. By using this new argument, the regression test properly
failed before the test, but passes after the fix.