summaryrefslogtreecommitdiffstats
path: root/test/integration/targets/ansible-test/venv-pythons.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/integration/targets/ansible-test/venv-pythons.py')
-rwxr-xr-xtest/integration/targets/ansible-test/venv-pythons.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/test/integration/targets/ansible-test/venv-pythons.py b/test/integration/targets/ansible-test/venv-pythons.py
new file mode 100755
index 0000000..b380f14
--- /dev/null
+++ b/test/integration/targets/ansible-test/venv-pythons.py
@@ -0,0 +1,42 @@
+#!/usr/bin/env python
+"""Return target Python options for use with ansible-test."""
+
+import os
+import shutil
+import subprocess
+import sys
+
+from ansible import release
+
+
+def main():
+ ansible_root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(release.__file__))))
+ source_root = os.path.join(ansible_root, 'test', 'lib')
+
+ sys.path.insert(0, source_root)
+
+ from ansible_test._internal import constants
+
+ args = []
+
+ for python_version in constants.SUPPORTED_PYTHON_VERSIONS:
+ executable = shutil.which(f'python{python_version}')
+
+ if executable:
+ if python_version.startswith('2.'):
+ cmd = [executable, '-m', 'virtualenv', '--version']
+ else:
+ cmd = [executable, '-m', 'venv', '--help']
+
+ process = subprocess.run(cmd, capture_output=True, check=False)
+
+ print(f'{executable} - {"fail" if process.returncode else "pass"}', file=sys.stderr)
+
+ if not process.returncode:
+ args.extend(['--target-python', f'venv/{python_version}'])
+
+ print(' '.join(args))
+
+
+if __name__ == '__main__':
+ main()