From 79dfe14adffbfb17a16782e3370d212c878feeb2 Mon Sep 17 00:00:00 2001 From: Matt Clay Date: Mon, 5 Dec 2022 12:28:01 -0800 Subject: More integration tests for import sanity test. (#79532) --- .../ansible-test-sanity-import/expected.txt | 2 ++ .../targets/ansible-test-sanity-import/runme.sh | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 test/integration/targets/ansible-test-sanity-import/expected.txt diff --git a/test/integration/targets/ansible-test-sanity-import/expected.txt b/test/integration/targets/ansible-test-sanity-import/expected.txt new file mode 100644 index 0000000000..ab41fd78aa --- /dev/null +++ b/test/integration/targets/ansible-test-sanity-import/expected.txt @@ -0,0 +1,2 @@ +plugins/lookup/stderr.py:0:0: stderr: unwanted stderr +plugins/lookup/stdout.py:0:0: stdout: unwanted stdout diff --git a/test/integration/targets/ansible-test-sanity-import/runme.sh b/test/integration/targets/ansible-test-sanity-import/runme.sh index a12e3e3fd2..a49a71a0f0 100755 --- a/test/integration/targets/ansible-test-sanity-import/runme.sh +++ b/test/integration/targets/ansible-test-sanity-import/runme.sh @@ -1,7 +1,29 @@ #!/usr/bin/env bash +set -eu + +# Create test scenarios at runtime that do not pass sanity tests. +# This avoids the need to create ignore entries for the tests. + +mkdir -p ansible_collections/ns/col/plugins/lookup + +( + cd ansible_collections/ns/col/plugins/lookup + + echo "import sys; sys.stdout.write('unwanted stdout')" > stdout.py # stdout: unwanted stdout + echo "import sys; sys.stderr.write('unwanted stderr')" > stderr.py # stderr: unwanted stderr +) + source ../collection/setup.sh +# Run regular import sanity tests. + +ansible-test sanity --test import --color --failure-ok --lint --python "${ANSIBLE_TEST_PYTHON_VERSION}" "${@}" 1> actual-stdout.txt 2> actual-stderr.txt +diff -u "${TEST_DIR}/expected.txt" actual-stdout.txt +grep -f "${TEST_DIR}/expected.txt" actual-stderr.txt + +# Run import sanity tests which require modifications to the source directory. + vendor_dir="$(python -c 'import pathlib, ansible._vendor; print(pathlib.Path(ansible._vendor.__file__).parent)')" cleanup() { -- cgit v1.2.1