--- # 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. # Expected values of the written files - name: get checksums that we expect later files to have copy: src: from_playbook dest: "{{ output_dir }}" - copy: src: b64_utf8 dest: "{{ output_dir }}" - copy: src: b64_latin1 dest: "{{ output_dir }}" - stat: path: "{{ output_dir }}/from_playbook" register: from_playbook - stat: path: "{{ output_dir }}/b64_utf8" register: b64_utf8 - stat: path: "{{ output_dir }}/b64_latin1" register: b64_latin1 - name: copy with utf-8 content in a playbook copy: content: "{{ simple_accents }}\n" dest: "{{ output_dir }}/from_playbook.txt" - name: Check that what was written matches stat: path: "{{ output_dir }}/from_playbook.txt" register: results - assert: that: - 'results.stat.checksum == from_playbook.stat.checksum' ignore_errors: True - name: copy with utf8 in a base64 encoded string copy: content: "{{ utf8_simple_accents|b64decode }}\n" dest: "{{ output_dir }}/b64_utf8.txt" - name: Check that what was written matches stat: path: "{{ output_dir }}/b64_utf8.txt" register: results - assert: that: - 'results.stat.checksum == b64_utf8.stat.checksum' ignore_errors: True #- name: copy with latin1 in a base64 encoded string # copy: # content: "{{ latin1_simple_accents|b64decode }}\n" # dest: "{{ output_dir }}/b64_latin1.txt" # #- name: Check that what was written matches # stat: # path: "{{ output_dir }}/b64_latin1.txt" # register: results # #- assert: # that: # - 'results.stat.checksum == b64_latin1.stat.checksum' # ignore_errors: True - name: Template with a unicode string from the playbook template: src: "from_playbook_template.j2" dest: "{{ output_dir }}/from_playbook_template.txt" - name: Check that what was written matches stat: path: "{{ output_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: "{{ output_dir }}/b64_utf8_template.txt" - name: Check that what was written matches stat: path: "{{ output_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: "{{ output_dir }}/b64_latin1_template.txt" # #- name: Check that what was written matches # stat: # path: "{{ output_dir }}/b64_latin1_template.txt" # register: results # #- assert: # that: # - 'results.stat.checksum == b64_latin1.stat.checksum' # 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}}