From f2e37b0f2738d99bba4c18d81c80b17efd689afc Mon Sep 17 00:00:00 2001 From: "Gael Chamoulaud (Strider)" Date: Wed, 12 May 2021 07:03:36 +0200 Subject: [PATCH] Make Python Interpreter option for Ansible Validation Run This patch adds the --python-interpreter argument to the run subcommand and allows the user to specify their own python interpreter. Change-Id: Ie76d0238f117a48b2f919cd5bdc4dfae8b47ac5e Signed-off-by: Gael Chamoulaud (Strider) --- validations_libs/cli/run.py | 11 +++++++++++ validations_libs/tests/cli/test_run.py | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/validations_libs/cli/run.py b/validations_libs/cli/run.py index 65938d74..6f1f4bb1 100644 --- a/validations_libs/cli/run.py +++ b/validations_libs/cli/run.py @@ -71,6 +71,16 @@ class Run(Command): help=("Path where the run result in JUnitXML " "format will be stored.")) + parser.add_argument( + '--python-interpreter', + metavar="--python-interpreter ", + action="store", + default="{}".format( + sys.executable if sys.executable else "/usr/bin/python" + ), + help=("Python interpreter for Ansible execution. ") + ) + parser.add_argument( '--extra-env-vars', action=KeyValueAction, @@ -171,6 +181,7 @@ class Run(Command): base_dir=parsed_args.ansible_base_dir, validation_name=parsed_args.validation_name, extra_env_vars=extra_env_vars, + python_interpreter=parsed_args.python_interpreter, quiet=quiet_mode, ssh_user=parsed_args.ssh_user, ) diff --git a/validations_libs/tests/cli/test_run.py b/validations_libs/tests/cli/test_run.py index 78e16f87..da718f8e 100644 --- a/validations_libs/tests/cli/test_run.py +++ b/validations_libs/tests/cli/test_run.py @@ -12,6 +12,8 @@ # License for the specific language governing permissions and limitations # under the License. # +import sys + try: from unittest import mock except ImportError: @@ -72,6 +74,7 @@ class TestRun(BaseCommand): 'base_dir': '/usr/share/ansible/', 'validation_name': ['foo'], 'extra_env_vars': None, + 'python_interpreter': sys.executable, 'quiet': True, 'ssh_user': 'doe'} @@ -101,6 +104,7 @@ class TestRun(BaseCommand): 'base_dir': '/usr/share/ansible/', 'validation_name': ['foo'], 'extra_env_vars': None, + 'python_interpreter': sys.executable, 'quiet': True, 'ssh_user': 'doe'} @@ -142,6 +146,7 @@ class TestRun(BaseCommand): 'base_dir': '/usr/share/ansible/', 'validation_name': ['foo'], 'extra_env_vars': None, + 'python_interpreter': sys.executable, 'quiet': True, 'ssh_user': 'doe'} @@ -169,6 +174,7 @@ class TestRun(BaseCommand): 'base_dir': '/usr/share/ansible/', 'validation_name': ['foo'], 'extra_env_vars': {'key': 'value'}, + 'python_interpreter': sys.executable, 'quiet': True, 'ssh_user': 'doe'} @@ -198,6 +204,7 @@ class TestRun(BaseCommand): 'base_dir': '/usr/share/ansible/', 'validation_name': ['foo'], 'extra_env_vars': {'ANSIBLE_STDOUT_CALLBACK': 'default'}, + 'python_interpreter': sys.executable, 'quiet': False, 'ssh_user': 'doe'} @@ -225,6 +232,7 @@ class TestRun(BaseCommand): 'base_dir': '/usr/share/ansible/', 'validation_name': ['foo'], 'extra_env_vars': {'key': 'value2'}, + 'python_interpreter': sys.executable, 'quiet': True, 'ssh_user': 'doe'} @@ -254,6 +262,7 @@ class TestRun(BaseCommand): 'base_dir': '/usr/share/ansible/', 'validation_name': ['foo'], 'extra_env_vars': {'key2': 'value2'}, + 'python_interpreter': sys.executable, 'quiet': True, 'ssh_user': 'doe'} @@ -292,6 +301,7 @@ class TestRun(BaseCommand): 'base_dir': '/usr/share/ansible/', 'validation_name': ['foo'], 'extra_env_vars': {'key2': 'value2'}, + 'python_interpreter': sys.executable, 'quiet': True, 'ssh_user': 'doe'} @@ -315,6 +325,7 @@ class TestRun(BaseCommand): 'base_dir': '/usr/share/ansible/', 'validation_name': ['foo'], 'extra_env_vars': {'key2': 'value2'}, + 'python_interpreter': sys.executable, 'quiet': True, 'ssh_user': 'doe'}