From 7aa9483b2cc0553cebb6e51fdf4a7f0a1ad191f9 Mon Sep 17 00:00:00 2001 From: Rafael Guterres Jeffman <rjeffman@redhat.com> Date: Tue, 2 Jul 2024 02:24:17 +0000 Subject: [PATCH] tests: Allow to set Python interpreter to be used by Ansible On some systems it is required or desired to run Ansible with a specific Python interpreter. This patch allows the selection of the Python binary to use for the pytest playbook tests by setting the environment variable IPA_PYTHON_PATH. Set it the the full path of the Python interpreter. --- tests/README.md | 6 ++++++ tests/utils.py | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/tests/README.md b/tests/README.md index ed54b0b8..1e9d4e4a 100644 --- a/tests/README.md +++ b/tests/README.md @@ -36,6 +36,12 @@ environment variable. For example: IPA_SSH_PASSWORD=<ipaserver_ssh_password> IPA_SERVER_HOST=<ipaserver_host_or_ip> pytest ``` +If you want, or need to to set the Python interpreter to use, you must set `IPA_PYTHON_PATH` +environment variable. For example: + +``` +IPA_PYTHON_PATH=/usr/bin/python3.14 IPA_SERVER_HOST=<ipaserver_host_or_ip> pytest +``` To run a single test use the full path with the following format: diff --git a/tests/utils.py b/tests/utils.py index 01991aaa..89a24fc4 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -43,6 +43,10 @@ def get_ssh_password(): return os.getenv("IPA_SSH_PASSWORD") +def get_python_interpreter(): + return os.getenv("IPA_PYTHON_PATH") + + def get_server_host(): return os.getenv("IPA_SERVER_HOST") @@ -97,6 +101,12 @@ def get_inventory_content(): if sshpass: ipa_server_host += " ansible_ssh_pass=%s" % sshpass + python_interpreter = get_python_interpreter() + if python_interpreter: + ipa_server_host += ( + " ansible_python_interpreter=%s" % python_interpreter + ) + lines = [ "[ipaserver]", ipa_server_host, -- GitLab