tests/ansible: Spec.remote_user() test & mitogen_via= fix.

ansible_ssh_user precedence was incorrect.
pull/564/head
David Wilson 6 years ago
parent 748f5f675d
commit 21ad299d7b

@ -456,8 +456,8 @@ class MitogenViaSpec(Spec):
def remote_user(self): def remote_user(self):
return ( return (
self._host_vars.get('ansible_user') or
self._host_vars.get('ansible_ssh_user') or self._host_vars.get('ansible_ssh_user') or
self._host_vars.get('ansible_user') or
C.DEFAULT_REMOTE_USER C.DEFAULT_REMOTE_USER
) )

@ -18,4 +18,9 @@ tc-remote-addr-explicit-ssh ansible_ssh_host=ansi.ssh.host
tc-remote-addr-explicit-host ansible_host=ansi.host tc-remote-addr-explicit-host ansible_host=ansi.host
tc-remote-addr-explicit-both ansible_ssh_host=a.b.c ansible_host=b.c.d tc-remote-addr-explicit-both ansible_ssh_host=a.b.c ansible_host=b.c.d
# remote_addr()
tc-remote-user-unset # defaults to C.DEFAULT_REMOTE_USER
tc-remote-user-explicit-ssh ansible_ssh_user=ansi-ssh-user
tc-remote-user-explicit-user ansible_user=ansi-user
tc-remote-user-explicit-both ansible_user=a.b.c ansible_ssh_user=c.b.a

@ -1,3 +1,4 @@
- include: python_path.yml - include: python_path.yml
- include: remote_addr.yml - include: remote_addr.yml
- include: remote_user.yml
- include: transport.yml - include: transport.yml

@ -0,0 +1,96 @@
# Each case is followed by mitogen_via= case to test hostvars method.
# When no ansible_user/ansible_ssh_user= is set, username is
# C.DEFAULT_REMOTE_USER.
- name: integration/transport_config/remote_user.yml
hosts: tc-remote-user-unset
tasks:
- include: ../_mitogen_only.yml
- {mitogen_get_stack: {}, register: out}
- assert_equal:
left: out.result[0].kwargs.username
# We set DEFAULT_REMOTE_USER in our ansible.cfg
right: "ansible-cfg-remote-user"
- hosts: tc-remote-user-unset
vars: {mitogen_via: tc-remote-user-explicit-ssh}
tasks:
- include: ../_mitogen_only.yml
- {mitogen_get_stack: {}, register: out}
- assert_equal:
left: out.result[0].kwargs.username
right: "ansi-ssh-user"
- assert_equal:
left: out.result[1].kwargs.username
right: "ansible-cfg-remote-user"
# ansible_ssh_user=
- hosts: tc-remote-user-explicit-ssh
tasks:
- include: ../_mitogen_only.yml
- {mitogen_get_stack: {}, register: out}
- assert_equal:
left: out.result[0].kwargs.username
right: "ansi-ssh-user"
- hosts: tc-remote-user-explicit-ssh
vars: {mitogen_via: tc-remote-user-unset}
tasks:
- include: ../_mitogen_only.yml
- {mitogen_get_stack: {}, register: out}
- assert_equal:
left: out.result[0].kwargs.username
right: "ansible-cfg-remote-user"
- assert_equal:
left: out.result[1].kwargs.username
right: "ansi-ssh-user"
# ansible_user=
- hosts: tc-remote-user-explicit-user
tasks:
- include: ../_mitogen_only.yml
- {mitogen_get_stack: {}, register: out}
- assert_equal:
left: out.result[0].kwargs.username
right: "ansi-user"
- hosts: tc-remote-user-explicit-host
vars: {mitogen_via: tc-remote-user-unset}
tasks:
- include: ../_mitogen_only.yml
- {mitogen_get_stack: {}, register: out}
- assert_equal:
left: out.result[0].kwargs.username
right: "ansible-cfg-remote-user"
- assert_equal:
left: out.result[1].kwargs.username
right: "ansi-user"
# both; ansible_ssh_user= takes precedence according to play_context.py.
- hosts: tc-remote-user-explicit-both
tasks:
- include: ../_mitogen_only.yml
- {mitogen_get_stack: {}, register: out}
- assert_equal:
left: out.result[0].kwargs.username
right: "c.b.a"
- hosts: tc-remote-user-explicit-both
vars: {mitogen_via: tc-remote-user-unset}
tasks:
- include: ../_mitogen_only.yml
- {mitogen_get_stack: {}, register: out}
- assert_equal:
left: out.result[0].kwargs.username
right: "ansible-cfg-remote-user"
- assert_equal:
left: out.result[1].kwargs.username
right: "c.b.a"
Loading…
Cancel
Save