mirror of https://github.com/ansible/ansible.git
ansible-test - Fix vendoring support (#80074)
- Support loading of vendored Python packages. - Exclude vendored Python packages from payloads.pull/80084/head
parent
56036013cd
commit
6bfe6b899a
@ -0,0 +1,3 @@
|
|||||||
|
bugfixes:
|
||||||
|
- ansible-test - Support loading of vendored Python packages from ansible-core.
|
||||||
|
- ansible-test - Exclude ansible-core vendored Python packages from ansible-test payloads.
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
shippable/posix/group3 # runs in the distro test containers
|
||||||
|
shippable/generic/group1 # runs in the default test container
|
||||||
|
context/controller
|
||||||
|
needs/target/collection
|
||||||
|
destructive # adds and then removes packages into lib/ansible/_vendor/
|
||||||
@ -0,0 +1,4 @@
|
|||||||
|
# This config file is included to cause ansible-test to import the `packaging` module.
|
||||||
|
|
||||||
|
modules:
|
||||||
|
python_requires: default
|
||||||
@ -0,0 +1,33 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -eux
|
||||||
|
|
||||||
|
# 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)')"
|
||||||
|
|
||||||
|
mkdir "${vendor_dir}/packaging/" # intended to fail if packaging is already present (to avoid deleting it later)
|
||||||
|
|
||||||
|
cleanup() {
|
||||||
|
rm -rf "${vendor_dir}/packaging/"
|
||||||
|
}
|
||||||
|
|
||||||
|
trap cleanup EXIT
|
||||||
|
|
||||||
|
# Verify that packages installed in the vendor directory are loaded by ansible-test.
|
||||||
|
# This is done by injecting a broken `packaging` package, which should cause ansible-test to fail.
|
||||||
|
|
||||||
|
echo 'raise Exception("intentional failure from ansible-test-vendoring integration test")' > "${vendor_dir}/packaging/__init__.py"
|
||||||
|
|
||||||
|
if ansible-test sanity --test import --color --truncate 0 "${@}" > output.log 2>&1; then
|
||||||
|
echo "ansible-test did not exit with a non-zero status"
|
||||||
|
cat output.log
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! grep '^Exception: intentional failure from ansible-test-vendoring integration test$' output.log; then
|
||||||
|
echo "ansible-test did not fail with the expected output"
|
||||||
|
cat output.log
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
Loading…
Reference in New Issue