From e1df98168c0e056f27f8de70a4080773955ea8a7 Mon Sep 17 00:00:00 2001 From: David Wilson Date: Tue, 12 Feb 2019 02:12:39 +0000 Subject: [PATCH] issue #536: add mitogen_via= tests too. --- ansible_mitogen/transport_config.py | 1 - tests/ansible/integration/_mitogen_only.yml | 4 + .../transport_config/python_path.yml | 82 ++++++++++++++++--- 3 files changed, 76 insertions(+), 11 deletions(-) create mode 100644 tests/ansible/integration/_mitogen_only.yml diff --git a/ansible_mitogen/transport_config.py b/ansible_mitogen/transport_config.py index 3401b035..511cba5f 100644 --- a/ansible_mitogen/transport_config.py +++ b/ansible_mitogen/transport_config.py @@ -495,7 +495,6 @@ class MitogenViaSpec(Spec): # interpreter is specified. return parse_python_path(s or '/usr/bin/python') - def private_key_file(self): # TODO: must come from PlayContext too. return ( diff --git a/tests/ansible/integration/_mitogen_only.yml b/tests/ansible/integration/_mitogen_only.yml new file mode 100644 index 00000000..85ef378e --- /dev/null +++ b/tests/ansible/integration/_mitogen_only.yml @@ -0,0 +1,4 @@ +# Include me for plays that can't run on vanilla. +# +- meta: end_play + when: not is_mitogen diff --git a/tests/ansible/integration/transport_config/python_path.yml b/tests/ansible/integration/transport_config/python_path.yml index d0c16788..db6c873b 100644 --- a/tests/ansible/integration/transport_config/python_path.yml +++ b/tests/ansible/integration/transport_config/python_path.yml @@ -1,4 +1,5 @@ # related: issue #511, #536 +# Each case is followed by mitogen_via= case to test hostvars method. # When no ansible_python_interpreter is set, executor/module_common.py chooses @@ -6,57 +7,118 @@ - name: integration/transport_config/python_path.yml hosts: tc-python-path-unset tasks: - - meta: end_play - when: not is_mitogen + - include: ../_mitogen_only.yml - mitogen_get_stack: register: out - assert_equal: left: out.result[0].kwargs.python_path right: ["/usr/bin/python"] +- hosts: tc-python-path-hostvar + vars: {mitogen_via: tc-python-path-unset} + tasks: + - include: ../_mitogen_only.yml + - mitogen_get_stack: + register: out + - assert_equal: + left: out.result[0].kwargs.python_path + right: ["/usr/bin/python"] + - assert_equal: + left: out.result[1].kwargs.python_path + right: ["/hostvar/path/to/python"] + # Non-localhost with explicit ansible_python_interpreter - hosts: tc-python-path-hostvar tasks: - - meta: end_play - when: not is_mitogen + - include: ../_mitogen_only.yml - mitogen_get_stack: register: out - assert_equal: left: out.result[0].kwargs.python_path right: [/hostvar/path/to/python] +- hosts: tc-python-path-unset + vars: {mitogen_via: tc-python-path-hostvar} + tasks: + - include: ../_mitogen_only.yml + - mitogen_get_stack: + register: out + - assert_equal: + left: out.result[0].kwargs.python_path + right: ["/hostvar/path/to/python"] + - assert_equal: + left: out.result[1].kwargs.python_path + right: ["/usr/bin/python"] + # Implicit localhost gets ansible_python_interpreter=virtualenv interpreter - hosts: localhost tasks: - - meta: end_play - when: not is_mitogen + - include: ../_mitogen_only.yml + - mitogen_get_stack: + register: out + - assert_equal: + left: out.result[0].kwargs.python_path + right: ["{{ansible_playbook_python}}"] + +- hosts: tc-python-path-unset + vars: {mitogen_via: localhost} + tasks: + - include: ../_mitogen_only.yml - mitogen_get_stack: register: out - assert_equal: left: out.result[0].kwargs.python_path right: ["{{ansible_playbook_python}}"] + - assert_equal: + left: out.result[1].kwargs.python_path + right: ["/usr/bin/python"] # explicit local connections get the same treatment as everything else. - hosts: tc-python-path-local-unset tasks: - - meta: end_play - when: not is_mitogen + - include: ../_mitogen_only.yml - mitogen_get_stack: register: out - assert_equal: left: out.result[0].kwargs.python_path right: ["/usr/bin/python"] +- hosts: localhost + vars: {mitogen_via: tc-python-path-local-unset} + tasks: + - include: ../_mitogen_only.yml + - mitogen_get_stack: + register: out + - assert_equal: + left: out.result[0].kwargs.python_path + right: ["/usr/bin/python"] + - assert_equal: + left: out.result[1].kwargs.python_path + right: ["{{ansible_playbook_python}}"] + +# explicit local connection with explicit interpreter - hosts: tc-python-path-local-explicit tasks: - - meta: end_play - when: not is_mitogen + - include: ../_mitogen_only.yml - mitogen_get_stack: register: out - assert_equal: left: out.result[0].kwargs.python_path right: ["/a/b/c"] + +- hosts: localhost + vars: {mitogen_via: tc-python-path-local-explicit} + tasks: + - include: ../_mitogen_only.yml + - mitogen_get_stack: + register: out + - assert_equal: + left: out.result[0].kwargs.python_path + right: ["/a/b/c"] + - assert_equal: + left: out.result[1].kwargs.python_path + right: ["{{ansible_playbook_python}}"]