diff options
Diffstat (limited to 'tests_new/integration/roles')
5 files changed, 115 insertions, 0 deletions
diff --git a/tests_new/integration/roles/prepare_tests/tasks/main.yml b/tests_new/integration/roles/prepare_tests/tasks/main.yml new file mode 100644 index 0000000000..7847a7ce6c --- /dev/null +++ b/tests_new/integration/roles/prepare_tests/tasks/main.yml @@ -0,0 +1,26 @@ +# test code for the copy module and action plugin +# (c) 2014, Michael DeHaan <michael.dehaan@gmail.com> + +# 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 <http://www.gnu.org/licenses/>. + + +- name: clean out the test directory + file: name={{output_dir|mandatory}} state=absent + +- name: create the test directory + file: name={{output_dir}} state=directory + + diff --git a/tests_new/integration/roles/test_copy/files/foo.txt b/tests_new/integration/roles/test_copy/files/foo.txt new file mode 100644 index 0000000000..7c6ded14ec --- /dev/null +++ b/tests_new/integration/roles/test_copy/files/foo.txt @@ -0,0 +1 @@ +foo.txt diff --git a/tests_new/integration/roles/test_copy/foo.txt b/tests_new/integration/roles/test_copy/foo.txt new file mode 100644 index 0000000000..7c6ded14ec --- /dev/null +++ b/tests_new/integration/roles/test_copy/foo.txt @@ -0,0 +1 @@ +foo.txt diff --git a/tests_new/integration/roles/test_copy/meta/main.yml b/tests_new/integration/roles/test_copy/meta/main.yml new file mode 100644 index 0000000000..1050c23ce3 --- /dev/null +++ b/tests_new/integration/roles/test_copy/meta/main.yml @@ -0,0 +1,3 @@ +dependencies: + - prepare_tests + diff --git a/tests_new/integration/roles/test_copy/tasks/main.yml b/tests_new/integration/roles/test_copy/tasks/main.yml new file mode 100644 index 0000000000..756e048812 --- /dev/null +++ b/tests_new/integration/roles/test_copy/tasks/main.yml @@ -0,0 +1,84 @@ +# test code for the copy module and action plugin +# (c) 2014, Michael DeHaan <michael.dehaan@gmail.com> + +# 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 <http://www.gnu.org/licenses/>. + +# FIXME: replace all fail_when's with asserts + +- set_fact: output_file={{output_dir}}/foo.txt + +- name: initiate a basic copy + copy: src=foo.txt dest={{output_file}} + register: copy_result + +- assert: { that: "'changed' in copy_result" } +- assert: { that: "'dest' in copy_result" } +- assert: { that: "'group' in copy_result" } +- assert: { that: "'gid' in copy_result" } +- assert: { that: "'md5sum' in copy_result" } +- assert: { that: "'owner' in copy_result" } +- assert: { that: "'size' in copy_result" } +- assert: { that: "'src' in copy_result" } +- assert: { that: "'state' in copy_result" } +- assert: { that: "'uid' in copy_result" } + + +- name: verify that the file was marked as changed + assert: { that: "copy_result.changed == true" } + +- name: verify that the file md5sum is correct + assert: { that: "copy_result.md5sum == 'c47397529fe81ab62ba3f85e9f4c71f2'" } + +- name: check the stat results of the file + stat: path={{output_file}} + register: stat_results + +- debug: var=stat_results + +- assert: { that: "stat_results.stat.exists == true" } +- assert: { that: "stat_results.stat.isblk == false" } +- assert: { that: "stat_results.stat.isfifo == false" } +- assert: { that: "stat_results.stat.isreg == true" } +- assert: { that: "stat_results.stat.issock == false" } +- assert: { that: "stat_results.stat.md5 == 'c47397529fe81ab62ba3f85e9f4c71f2'" } + +- name: overwrite the file via same means + copy: src=foo.txt dest={{output_file}} + register: copy_result2 + +- name: verify the copy was marked unchanged + assert: { that: "not copy_result2|changed" } + +- name: overwrite the file using the content system + copy: content="modified" dest={{output_file}} + register: copy_result3 + +- name: verify the copy result was marked changed + assert: { that: "copy_result3|changed" } + +- name: overwrite the file again using the content system + copy: content="modified" dest={{output_file}} + register: copy_result4 + +- name: verify the copy result was marked unchanged + assert: { that: "not copy_result4|changed" } + +# TODO: test recursive copy +# TODO: test copy where destination is a directory like {{output_dir}}/ +# TODO: test that copy fails if the path does not exist +# TODO: ... + + |