Merge pull request #6088 from edsantiago/bats_check_usage

BATS help test: check usage string
This commit is contained in:
OpenShift Merge Robot 2020-05-05 17:32:25 +02:00 committed by GitHub
commit fb6eca50ba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 6 deletions

View File

@ -49,7 +49,7 @@ func init() {
registry.Commands = append(registry.Commands, registry.CliCommand{
Mode: []entities.EngineMode{entities.ABIMode, entities.TunnelMode},
Command: unpauseCommand,
Command: containerUnpauseCommand,
Parent: containerCmd,
})

View File

@ -28,13 +28,20 @@ function check_help() {
local subcommands_found=0
for cmd in $(podman_commands "$@"); do
dprint "podman $@ $cmd --help"
# Human-readable podman command string, with multiple spaces collapsed
command_string="podman $* $cmd"
command_string=${command_string// / } # 'podman x' -> 'podman x'
dprint "$command_string --help"
run_podman "$@" $cmd --help
# The line immediately after 'Usage:' gives us a 1-line synopsis
usage=$(echo "$output" | grep -A1 '^Usage:' | tail -1)
[ -n "$usage" ] || die "podman $cmd: no Usage message found"
# e.g. 'podman ps' should not show 'podman container ps' in usage
is "$usage" " $command_string .*" "Usage string matches command"
# If usage ends in '[command]', recurse into subcommands
if expr "$usage" : '.*\[command\]$' >/dev/null; then
subcommands_found=$(expr $subcommands_found + 1)
@ -46,10 +53,10 @@ function check_help() {
# Confirm that by running with 'invalid-arg' and expecting failure.
if expr "$usage" : '.*\[flags\]$' >/dev/null; then
if [ "$cmd" != "help" ]; then
dprint "podman $@ $cmd invalid-arg"
dprint "$command_string invalid-arg"
run_podman 125 "$@" $cmd invalid-arg
is "$output" "Error: .* takes no arguments" \
"'podman $@ $cmd' with extra (invalid) arguments"
"'$command_string' with extra (invalid) arguments"
fi
fi
@ -69,10 +76,10 @@ function check_help() {
# The </dev/null protects us from 'podman login' which will
# try to read username/password from stdin.
dprint "podman $@ $cmd (without required args)"
dprint "$command_string (without required args)"
run_podman 125 "$@" $cmd </dev/null
is "$output" "Error:.* \(require\|specif\|must\|provide\|need\|choose\|accepts\)" \
"'podman $@ $cmd' without required arg"
"'$command_string' without required arg"
fi
count=$(expr $count + 1)