You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansible/test/integration/targets/binary/tasks/main.yml

132 lines
3.7 KiB
YAML

---
# Various ways users want to use binary data
# Could integrate into individual modules but currently these don't all work.
# Probably easier to see them all in a single block to know what we're testing.
# When we can start testing v2 we should test that all of these work.
# In v1: The following line will traceback if it's the first task in the role.
# Does not traceback if it's the second or third etc task.
- debug: msg="{{ utf8_simple_accents|b64decode}}"
# Expected values of the written files
- name: get checksums that we expect later files to have
copy:
src: from_playbook
dest: "{{ remote_tmp_dir }}"
- copy:
src: b64_utf8
dest: "{{ remote_tmp_dir }}"
- copy:
src: b64_latin1
dest: "{{ remote_tmp_dir }}"
- stat:
path: "{{ remote_tmp_dir }}/from_playbook"
register: from_playbook
- stat:
path: "{{ remote_tmp_dir }}/b64_utf8"
register: b64_utf8
- stat:
path: "{{ remote_tmp_dir }}/b64_latin1"
register: b64_latin1
# Tests themselves
- name: copy with utf-8 content in a playbook
copy:
content: "{{ simple_accents }}\n"
dest: "{{ remote_tmp_dir }}/from_playbook.txt"
- name: Check that copying utf-8 content matches
stat:
path: "{{ remote_tmp_dir }}/from_playbook.txt"
register: results
- assert:
that:
- 'results.stat.checksum == from_playbook.stat.checksum'
- name: copy with utf8 in a base64 encoded string
copy:
content: "{{ utf8_simple_accents|b64decode }}\n"
dest: "{{ remote_tmp_dir }}/b64_utf8.txt"
- name: Check that utf8 in a base64 string matches
stat:
path: "{{ remote_tmp_dir }}/b64_utf8.txt"
register: results
- assert:
that:
- 'results.stat.checksum == b64_utf8.stat.checksum'
- name: copy with latin1 in a base64 encoded string
copy:
content: "{{ latin1_simple_accents|b64decode }}\n"
dest: "{{ remote_tmp_dir }}/b64_latin1.txt"
- name: Check that latin1 in a base64 string matches
stat:
path: "{{ remote_tmp_dir }}/b64_latin1.txt"
register: results
- assert:
that:
- 'results.stat.checksum == b64_latin1.stat.checksum'
# This one depends on being able to pass binary data through
# Might be a while before we find a solution for this
ignore_errors: True
- name: Template with a unicode string from the playbook
template:
src: "from_playbook_template.j2"
dest: "{{ remote_tmp_dir }}/from_playbook_template.txt"
- name: Check that writing a template from a playbook var matches
stat:
path: "{{ remote_tmp_dir }}/from_playbook_template.txt"
register: results
- assert:
that:
- 'results.stat.checksum == from_playbook.stat.checksum'
- name: Template with utf8 in a base64 encoded string
template:
src: "b64_utf8_template.j2"
dest: "{{ remote_tmp_dir }}/b64_utf8_template.txt"
- name: Check that writing a template from a base64 encoded utf8 string matches
stat:
path: "{{ remote_tmp_dir }}/b64_utf8_template.txt"
register: results
- assert:
that:
- 'results.stat.checksum == b64_utf8.stat.checksum'
- name: Template with latin1 in a base64 encoded string
template:
src: "b64_latin1_template.j2"
dest: "{{ remote_tmp_dir }}/b64_latin1_template.txt"
- name: Check that writing a template from a base64 encoded latin1 string matches
stat:
path: "{{ remote_tmp_dir }}/b64_latin1_template.txt"
register: results
- assert:
that:
- 'results.stat.checksum == b64_latin1.stat.checksum'
# This one depends on being able to pass binary data through
# Might be a while before we find a solution for this
ignore_errors: True
# These might give garbled output but none of them should traceback
- debug: var=simple_accents
- debug: msg="{{ utf8_simple_accents|b64decode}}"
- debug: msg="{{ latin1_simple_accents|b64decode}}"