mirror of
https://github.com/zebrajr/ansible.git
synced 2025-12-06 12:19:53 +01:00
Clean up shellcheck issues in tests
This commit is contained in:
parent
e1bcb8a534
commit
630e5dda25
|
|
@ -6,7 +6,7 @@ set -eu
|
|||
verbosity=0
|
||||
|
||||
# default to silent output for naked grep; -vvv+ will adjust this
|
||||
export GREP_OPTS=-q
|
||||
GREP_OPTS=(-q)
|
||||
|
||||
# shell tracing output is very large from this script; only enable if >= -vvv was passed
|
||||
while getopts :v opt
|
||||
|
|
@ -18,17 +18,17 @@ done
|
|||
|
||||
if (( verbosity >= 3 ));
|
||||
then
|
||||
set -x;
|
||||
export GREP_OPTS= ;
|
||||
set -x
|
||||
GREP_OPTS=()
|
||||
fi
|
||||
|
||||
echo "running playbook-backed docs tests"
|
||||
ansible-playbook test.yml -i inventory "$@"
|
||||
|
||||
# test keyword docs
|
||||
ansible-doc -t keyword -l | grep $GREP_OPTS 'vars_prompt: list of variables to prompt for.'
|
||||
ansible-doc -t keyword vars_prompt | grep $GREP_OPTS 'description: list of variables to prompt for.'
|
||||
ansible-doc -t keyword asldkfjaslidfhals 2>&1 | grep $GREP_OPTS 'Skipping Invalid keyword'
|
||||
ansible-doc -t keyword -l | grep "${GREP_OPTS[@]}" 'vars_prompt: list of variables to prompt for.'
|
||||
ansible-doc -t keyword vars_prompt | grep "${GREP_OPTS[@]}" 'description: list of variables to prompt for.'
|
||||
ansible-doc -t keyword asldkfjaslidfhals 2>&1 | grep "${GREP_OPTS[@]}" 'Skipping Invalid keyword'
|
||||
|
||||
# collections testing
|
||||
(
|
||||
|
|
@ -55,10 +55,10 @@ expected_out="$(sed '1 s/\(^> TESTNS\.TESTCOL\.YOLO\).*(.*)$/\1/' yolo-text.outp
|
|||
test "$current_out" == "$expected_out"
|
||||
|
||||
echo "ensure we do work with valid collection name for list"
|
||||
ansible-doc --list testns.testcol --playbook-dir ./ 2>&1 | grep $GREP_OPTS -v "Invalid collection name"
|
||||
ansible-doc --list testns.testcol --playbook-dir ./ 2>&1 | grep "${GREP_OPTS[@]}" -v "Invalid collection name"
|
||||
|
||||
echo "ensure we dont break on invalid collection name for list"
|
||||
ansible-doc --list testns.testcol.fakemodule --playbook-dir ./ 2>&1 | grep $GREP_OPTS "Invalid collection name"
|
||||
ansible-doc --list testns.testcol.fakemodule --playbook-dir ./ 2>&1 | grep "${GREP_OPTS[@]}" "Invalid collection name"
|
||||
|
||||
echo "filter list with more than one collection (1/2)"
|
||||
output=$(ansible-doc --list testns.testcol3 testns.testcol4 --playbook-dir ./ 2>&1 | wc -l)
|
||||
|
|
@ -96,12 +96,12 @@ do
|
|||
list_result=$(ansible-doc -l -t ${ptype} --playbook-dir ./ testns.testcol)
|
||||
metadata_result=$(ansible-doc --metadata-dump --no-fail-on-errors -t ${ptype} --playbook-dir ./ testns.testcol)
|
||||
for name in "${expected_names[@]}"; do
|
||||
echo "${list_result}" | grep $GREP_OPTS "testns.testcol.${name}"
|
||||
echo "${metadata_result}" | grep $GREP_OPTS "testns.testcol.${name}"
|
||||
echo "${list_result}" | grep "${GREP_OPTS[@]}" "testns.testcol.${name}"
|
||||
echo "${metadata_result}" | grep "${GREP_OPTS[@]}" "testns.testcol.${name}"
|
||||
done
|
||||
|
||||
# ensure we get error if passing invalid collection, much less any plugins
|
||||
ansible-doc -l -t ${ptype} bogus.boguscoll 2>&1 | grep $GREP_OPTS "unable to locate collection"
|
||||
ansible-doc -l -t ${ptype} bogus.boguscoll 2>&1 | grep "${GREP_OPTS[@]}" "unable to locate collection"
|
||||
|
||||
# TODO: do we want per namespace?
|
||||
# ensure we get 1 plugins when restricting namespace
|
||||
|
|
@ -230,7 +230,7 @@ echo "testing sidecar docs for jinja plugins"
|
|||
[ "$(ansible-doc -t filter --playbook-dir ./ ansible.legacy.donothing| wc -l)" -gt "0" ]
|
||||
|
||||
echo "testing no docs and no sidecar"
|
||||
ansible-doc -t filter --playbook-dir ./ nodocs 2>&1| grep $GREP_OPTS -c 'missing documentation' || true
|
||||
ansible-doc -t filter --playbook-dir ./ nodocs 2>&1| grep "${GREP_OPTS[@]}" -c 'missing documentation' || true
|
||||
|
||||
echo "testing sidecar docs for module"
|
||||
[ "$(ansible-doc -M ./library test_win_module| wc -l)" -gt "0" ]
|
||||
|
|
@ -249,7 +249,7 @@ echo "testing no duplicates for plugins that only exist in ansible.builtin when
|
|||
[ "$(ansible-doc -l -t filter --playbook-dir ./ |grep -c 'b64encode')" -eq "1" ]
|
||||
|
||||
echo "testing with playbook dir, legacy should override"
|
||||
ansible-doc -t filter split --playbook-dir ./ |grep $GREP_OPTS histerical
|
||||
ansible-doc -t filter split --playbook-dir ./ |grep "${GREP_OPTS[@]}" histerical
|
||||
|
||||
pyc_src="$(pwd)/filter_plugins/other.py"
|
||||
pyc_1="$(pwd)/filter_plugins/split.pyc"
|
||||
|
|
@ -258,11 +258,11 @@ trap 'rm -rf "$pyc_1" "$pyc_2"' EXIT
|
|||
|
||||
echo "testing pyc files are not used as adjacent documentation"
|
||||
python -c "import py_compile; py_compile.compile('$pyc_src', cfile='$pyc_1')"
|
||||
ansible-doc -t filter split --playbook-dir ./ |grep $GREP_OPTS histerical
|
||||
ansible-doc -t filter split --playbook-dir ./ |grep "${GREP_OPTS[@]}" histerical
|
||||
|
||||
echo "testing pyc files are not listed as plugins"
|
||||
python -c "import py_compile; py_compile.compile('$pyc_src', cfile='$pyc_2')"
|
||||
test "$(ansible-doc -l -t module --playbook-dir ./ 2>&1 1>/dev/null |grep -c "notaplugin")" == 0
|
||||
|
||||
echo "testing without playbook dir, builtin should return"
|
||||
ansible-doc -t filter split 2>&1 |grep $GREP_OPTS -v histerical
|
||||
ansible-doc -t filter split 2>&1 |grep "${GREP_OPTS[@]}" -v histerical
|
||||
|
|
|
|||
|
|
@ -2,17 +2,14 @@
|
|||
|
||||
set -eu
|
||||
|
||||
# shellcheck disable=SC2086
|
||||
basename="$(basename $0)"
|
||||
# shellcheck disable=SC2046
|
||||
# shellcheck disable=SC2086
|
||||
dirname="$(basename $(dirname $0))"
|
||||
basename="$(basename "$0")"
|
||||
dirname="$(basename "$(dirname "$0")")"
|
||||
basename_prefix="get-password"
|
||||
default_password="foo-bar"
|
||||
|
||||
case "${basename}" in
|
||||
"${basename_prefix}"-*)
|
||||
password="${default_password}-${basename#${basename_prefix}-}"
|
||||
password="${default_password}-${basename#"${basename_prefix}-"}"
|
||||
;;
|
||||
*)
|
||||
password="${default_password}"
|
||||
|
|
|
|||
|
|
@ -9,10 +9,7 @@ export PIP_DISABLE_PIP_VERSION_CHECK=1
|
|||
source virtualenv.sh
|
||||
|
||||
|
||||
>&2 echo \
|
||||
=== Test that the module \
|
||||
gets picked up if discoverable \
|
||||
via PYTHONPATH env var ===
|
||||
>&2 echo '=== Test that the module gets picked up if discoverable via PYTHONPATH env var ==='
|
||||
PYTHONPATH="${PWD}/ansible-collection-python-dist-boo:$PYTHONPATH" \
|
||||
ansible \
|
||||
-m python.dist.boo \
|
||||
|
|
@ -21,10 +18,7 @@ ansible \
|
|||
"$@" | grep -E '"greeting": "Hello, Bob!",'
|
||||
|
||||
|
||||
>&2 echo \
|
||||
=== Test that the module \
|
||||
gets picked up if installed \
|
||||
into site-packages ===
|
||||
>&2 echo '=== Test that the module gets picked up if installed into site-packages ==='
|
||||
python -m pip install pep517
|
||||
( # Build a binary Python dist (a wheel) using PEP517:
|
||||
cp -r ansible-collection-python-dist-boo "${OUTPUT_DIR}/"
|
||||
|
|
@ -45,10 +39,7 @@ ansible \
|
|||
"$@" | grep -E '"greeting": "Hello, Frodo!",'
|
||||
|
||||
|
||||
>&2 echo \
|
||||
=== Test that ansible_collections \
|
||||
root takes precedence over \
|
||||
PYTHONPATH/site-packages ===
|
||||
>&2 echo '=== Test that ansible_collections root takes precedence over PYTHONPATH/site-packages ==='
|
||||
# This is done by injecting a module with the same FQCN
|
||||
# into another collection root.
|
||||
ANSIBLE_COLLECTIONS_PATH="${PWD}/ansible-collection-python-dist-foo" \
|
||||
|
|
|
|||
|
|
@ -2,9 +2,8 @@
|
|||
|
||||
set -eux
|
||||
|
||||
# ignore empty env var and use default
|
||||
# shellcheck disable=SC1007
|
||||
ANSIBLE_TIMEOUT= ansible -m ping testhost -i ../../inventory "$@"
|
||||
# use default timeout
|
||||
ANSIBLE_TIMEOUT='' ansible -m ping testhost -i ../../inventory "$@"
|
||||
|
||||
# env var is wrong type, this should be a fatal error pointing at the setting
|
||||
ANSIBLE_TIMEOUT='lola' ansible -m ping testhost -i ../../inventory "$@" 2>&1|grep 'Invalid type for configuration option setting: DEFAULT_TIMEOUT (from env: ANSIBLE_TIMEOUT)'
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user