|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
set -eux -o pipefail
|
|
|
|
|
|
|
|
|
|
|
|
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 ===
|
|
|
|
PYTHONPATH="${PWD}/ansible-collection-python-dist-boo:$PYTHONPATH" \
|
|
|
|
ansible \
|
|
|
|
-m python.dist.boo \
|
|
|
|
-a 'name=Bob' \
|
|
|
|
-c local localhost \
|
|
|
|
"$@" | grep -E '"greeting": "Hello, Bob!",'
|
|
|
|
|
|
|
|
|
|
|
|
>&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}/"
|
|
|
|
cd "${OUTPUT_DIR}/ansible-collection-python-dist-boo"
|
|
|
|
python -m pep517.build --binary --out-dir dist .
|
|
|
|
)
|
|
|
|
# Install a pre-built dist with pip:
|
|
|
|
python -m pip install \
|
|
|
|
--no-index \
|
|
|
|
-f "${OUTPUT_DIR}/ansible-collection-python-dist-boo/dist/" \
|
|
|
|
--only-binary=ansible-collections.python.dist \
|
|
|
|
ansible-collections.python.dist
|
|
|
|
python -m pip show ansible-collections.python.dist
|
|
|
|
ansible \
|
|
|
|
-m python.dist.boo \
|
|
|
|
-a 'name=Frodo' \
|
|
|
|
-c local localhost \
|
|
|
|
"$@" | grep -E '"greeting": "Hello, Frodo!",'
|
|
|
|
|
|
|
|
|
|
|
|
>&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" \
|
|
|
|
PYTHONPATH="${PWD}/ansible-collection-python-dist-boo:$PYTHONPATH" \
|
|
|
|
ansible \
|
|
|
|
-m python.dist.boo \
|
|
|
|
-a 'name=Степан' \
|
|
|
|
-c local localhost \
|
|
|
|
"$@" | grep -E '"greeting": "Привіт, Степан!",'
|