25 lines
788 B
Bash
25 lines
788 B
Bash
|
#!/usr/bin/env bash
|
||
|
|
||
|
set -eux
|
||
|
|
||
|
# Ensure that when a non-distro 'distro' package is in PYTHONPATH, we fallback
|
||
|
# to our bundled one.
|
||
|
new_pythonpath="$OUTPUT_DIR/pythonpath"
|
||
|
mkdir -p "$new_pythonpath/distro"
|
||
|
touch "$new_pythonpath/distro/__init__.py"
|
||
|
|
||
|
export PYTHONPATH="$new_pythonpath:$PYTHONPATH"
|
||
|
|
||
|
# Sanity test to make sure the above worked
|
||
|
set +e
|
||
|
distro_id_fail="$(python -c 'import distro; distro.id' 2>&1)"
|
||
|
set -e
|
||
|
grep -q "AttributeError:.*has no attribute 'id'" <<< "$distro_id_fail"
|
||
|
|
||
|
# ansible.module_utils.common.sys_info imports distro, and itself gets imported
|
||
|
# in DataLoader, so all we have to do to test the fallback is run `ansible`.
|
||
|
ansirun="$(ansible -i ../../inventory -a "echo \$PYTHONPATH" localhost)"
|
||
|
grep -q "$new_pythonpath" <<< "$ansirun"
|
||
|
|
||
|
rm -rf "$new_pythonpath"
|