# test code for the template module # (c) 2014, Michael DeHaan # This file is part of Ansible # # Ansible is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Ansible is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Ansible. If not, see . - name: fill in a basic template # win_template: src=foo.j2 dest={{win_output_dir}}/foo.templated mode=0644 win_template: src=foo.j2 dest={{win_output_dir}}/foo.templated register: template_result - assert: that: - "'changed' in template_result" # - "'dest' in template_result" # - "'group' in template_result" # - "'gid' in template_result" # - "'checksum' in template_result" # - "'owner' in template_result" # - "'size' in template_result" # - "'src' in template_result" # - "'state' in template_result" # - "'uid' in template_result" - name: verify that the file was marked as changed assert: that: - "template_result.changed == true" # VERIFY CONTENTS - name: copy known good into place win_copy: src=foo.txt dest={{win_output_dir}}\foo.txt - name: compare templated file to known good raw: fc.exe {{win_output_dir}}\foo.templated {{win_output_dir}}\foo.txt register: diff_result - debug: var=diff_result - name: verify templated file matches known good assert: that: # - 'diff_result.stdout == ""' - 'diff_result.stdout_lines[1] == "FC: no differences encountered"' - "diff_result.rc == 0" # VERIFY MODE # can't set file mode on windows so commenting this test out #- name: set file mode # win_file: path={{win_output_dir}}/foo.templated mode=0644 # register: file_result #- name: ensure file mode did not change # assert: # that: # - "file_result.changed != True" # commenting out all the following tests as expanduser and file modes not windows concepts. # VERIFY dest as a directory does not break file attributes # Note: expanduser is needed to go down the particular codepath that was broken before #- name: setup directory for test # win_file: state=directory dest={{win_output_dir | expanduser}}/template-dir mode=0755 owner=nobody group=root #- name: set file mode when the destination is a directory # win_template: src=foo.j2 dest={{win_output_dir | expanduser}}/template-dir/ mode=0600 owner=root group=root #- name: set file mode when the destination is a directory # win_template: src=foo.j2 dest={{win_output_dir | expanduser}}/template-dir/ mode=0600 owner=root group=root # register: file_result # #- name: check that the file has the correct attributes # win_stat: path={{win_output_dir | expanduser}}/template-dir/foo.j2 # register: file_attrs # #- assert: # that: # - "file_attrs.stat.uid == 0" # - "file_attrs.stat.pw_name == 'root'" # - "file_attrs.stat.mode == '0600'" # #- name: check that the containing directory did not change attributes # win_stat: path={{win_output_dir | expanduser}}/template-dir/ # register: dir_attrs # #- assert: # that: # - "dir_attrs.stat.uid != 0" # - "dir_attrs.stat.pw_name == 'nobody'" # - "dir_attrs.stat.mode == '0755'"