Merge pull request #14812 from mattclay/test-connection
Add tests for connection plugins.
This commit is contained in:
commit
22344c5320
3 changed files with 80 additions and 1 deletions
|
@ -21,8 +21,9 @@ MYTMPDIR = $(shell mktemp -d 2>/dev/null || mktemp -d -t 'mytmpdir')
|
|||
VAULT_PASSWORD_FILE = vault-password
|
||||
|
||||
CONSUL_RUNNING := $(shell python consul_running.py)
|
||||
EUID := $(shell id -u -r)
|
||||
|
||||
all: setup parsing test_var_precedence unicode test_templating_settings environment non_destructive destructive includes blocks pull check_mode test_hash test_handlers test_group_by test_vault test_tags test_lookup_paths no_log
|
||||
all: setup parsing test_var_precedence unicode test_templating_settings environment non_destructive destructive includes blocks pull check_mode test_hash test_handlers test_group_by test_vault test_tags test_lookup_paths no_log test_connection
|
||||
|
||||
setup:
|
||||
rm -rf $(TEST_DIR)
|
||||
|
@ -72,6 +73,18 @@ environment: setup
|
|||
non_destructive: setup
|
||||
ansible-playbook non_destructive.yml -i $(INVENTORY) -e outputdir=$(TEST_DIR) -e @$(VARS_FILE) $(CREDENTIALS_ARG) -v $(TEST_FLAGS)
|
||||
|
||||
# Skip connection plugins which require root when not running as root.
|
||||
ifneq ($(EUID),0)
|
||||
TEST_CONNECTION_FILTER := !chroot
|
||||
endif
|
||||
|
||||
# Connection plugin test command to repeat with each locale setting.
|
||||
TEST_CONNECTION_CMD = $(1) ansible-playbook test_connection.yml -i test_connection.inventory -l '!skip-during-build $(TEST_CONNECTION_FILTER)' $(TEST_FLAGS)
|
||||
|
||||
test_connection: setup
|
||||
$(call TEST_CONNECTION_CMD)
|
||||
$(call TEST_CONNECTION_CMD, LC_ALL=C LANG=C)
|
||||
|
||||
destructive: setup
|
||||
ansible-playbook destructive.yml -i $(INVENTORY) -e outputdir=$(TEST_DIR) -e @$(VARS_FILE) $(CREDENTIALS_ARG) -v $(TEST_FLAGS)
|
||||
|
||||
|
|
31
test/integration/test_connection.inventory
Normal file
31
test/integration/test_connection.inventory
Normal file
|
@ -0,0 +1,31 @@
|
|||
[local]
|
||||
local-pipelining ansible_ssh_pipelining=true
|
||||
local-no-pipelining ansible_ssh_pipelining=false
|
||||
[local:vars]
|
||||
ansible_host=localhost
|
||||
ansible_connection=local
|
||||
|
||||
[chroot]
|
||||
chroot-pipelining ansible_ssh_pipelining=true
|
||||
chroot-no-pipelining ansible_ssh_pipelining=false
|
||||
[chroot:vars]
|
||||
ansible_host=/
|
||||
ansible_connection=chroot
|
||||
|
||||
[ssh]
|
||||
ssh-pipelining ansible_ssh_pipelining=true
|
||||
ssh-no-pipelining ansible_ssh_pipelining=false
|
||||
[ssh:vars]
|
||||
ansible_host=localhost
|
||||
ansible_connection=ssh
|
||||
|
||||
[paramiko_ssh]
|
||||
paramiko_ssh-pipelining ansible_ssh_pipelining=true
|
||||
paramiko_ssh-no-pipelining ansible_ssh_pipelining=false
|
||||
[paramiko_ssh:vars]
|
||||
ansible_host=localhost
|
||||
ansible_connection=paramiko_ssh
|
||||
|
||||
[skip-during-build:children]
|
||||
ssh
|
||||
paramiko_ssh
|
35
test/integration/test_connection.yml
Normal file
35
test/integration/test_connection.yml
Normal file
|
@ -0,0 +1,35 @@
|
|||
- hosts: all
|
||||
gather_facts: no
|
||||
serial: 1
|
||||
tasks:
|
||||
|
||||
### raw with unicode arg and output
|
||||
|
||||
- name: raw with unicode arg and output
|
||||
raw: echo 汉语
|
||||
register: command
|
||||
- name: check output of raw with unicode arg and output
|
||||
assert: { that: "'汉语' in command.stdout" }
|
||||
|
||||
### copy local file with unicode filename and content
|
||||
|
||||
- name: create local file with unicode filename and content
|
||||
local_action: lineinfile dest=/tmp/ansible-local-汉语 create=true line=汉语
|
||||
- name: remove remote file with unicode filename and content
|
||||
file: path=/tmp/ansible-remote-汉语 state=absent
|
||||
- name: copy local file with unicode filename and content
|
||||
copy: src=/tmp/ansible-local-汉语 dest=/tmp/ansible-remote-汉语
|
||||
|
||||
### fetch remote file with unicode filename and content
|
||||
|
||||
- name: remove local file with unicode filename and content
|
||||
local_action: file path=/tmp/ansible-local-汉语 state=absent
|
||||
- name: fetch remote file with unicode filename and content
|
||||
fetch: src=/tmp/ansible-remote-汉语 dest=/tmp/ansible-local-汉语 fail_on_missing=true validate_checksum=true flat=true
|
||||
|
||||
### remove local and remote temp files
|
||||
|
||||
- name: remove local temp file
|
||||
local_action: file path=/tmp/ansible-local-汉语 state=absent
|
||||
- name: remove remote temp file
|
||||
file: path=/tmp/ansible-remote-汉语 state=absent
|
Loading…
Reference in a new issue