mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
copy: Add testcase for recursive copy.
This commit is contained in:
parent
2e668f14f7
commit
3ad61ef310
4 changed files with 154 additions and 0 deletions
|
@ -393,6 +393,23 @@ class TestPlaybook(unittest.TestCase):
|
|||
assert utils.jsonify(expected, format=True) == utils.jsonify(actual,format=True)
|
||||
|
||||
|
||||
def test_recursive_copy(self):
|
||||
pb = 'test/playbook-recursive-copy.yml'
|
||||
actual = self._run(pb)
|
||||
|
||||
expected = {
|
||||
"localhost": {
|
||||
"changed": 65,
|
||||
"failures": 0,
|
||||
"ok": 73,
|
||||
"skipped": 0,
|
||||
"unreachable": 0
|
||||
}
|
||||
}
|
||||
|
||||
assert utils.jsonify(expected, format=True) == utils.jsonify(actual,format=True)
|
||||
|
||||
|
||||
def _compare_file_output(self, filename, expected_lines):
|
||||
actual_lines = []
|
||||
with open(filename) as f:
|
||||
|
|
133
test/playbook-recursive-copy.yml
Normal file
133
test/playbook-recursive-copy.yml
Normal file
|
@ -0,0 +1,133 @@
|
|||
---
|
||||
# To run me manually, use: -i "localhost,"
|
||||
- hosts: localhost
|
||||
connection: local
|
||||
gather_facts: no
|
||||
vars:
|
||||
- testdir: /tmp/ansible-rcopy
|
||||
- filesdir: test_recursive_copy/files
|
||||
tasks:
|
||||
|
||||
#
|
||||
# First, regression tests for single-file behavior
|
||||
#
|
||||
|
||||
- name: "src single file, dest file"
|
||||
command: rm -rf {{testdir}}
|
||||
- file: state=directory dest={{testdir}}
|
||||
- copy: src={{filesdir}}/subdir/subdir2/subdir3/test1 dest={{testdir}}/file1
|
||||
register: res
|
||||
- command: test -f {{testdir}}/file1
|
||||
- command: test "{{res.changed}}" == "True"
|
||||
- copy: src={{filesdir}}/subdir/subdir2/subdir3/test1 dest={{testdir}}/file1
|
||||
register: res
|
||||
- command: test "{{res.changed}}" == "False"
|
||||
|
||||
- name: "src single file, dest dir w/trailing slash"
|
||||
command: rm -rf {{testdir}}
|
||||
- file: state=directory dest={{testdir}}
|
||||
- copy: src={{filesdir}}/subdir/subdir2/subdir3/test1 dest={{testdir}}/
|
||||
register: res
|
||||
- command: test -f {{testdir}}/test1
|
||||
- command: test "{{res.changed}}" == "True"
|
||||
- copy: src={{filesdir}}/subdir/subdir2/subdir3/test1 dest={{testdir}}/
|
||||
register: res
|
||||
- command: test "{{res.changed}}" == "False"
|
||||
|
||||
- name: "src single file, dest dir wo/trailing slash - doesn't behave in sane way"
|
||||
command: rm -rf {{testdir}}
|
||||
- file: state=directory dest={{testdir}}
|
||||
- copy: src={{filesdir}}/subdir/subdir2/subdir3/test1 dest={{testdir}}
|
||||
register: res
|
||||
- shell: test -f {{testdir}}/test1
|
||||
- command: test "{{res.changed}}" == "True"
|
||||
- copy: src={{filesdir}}/subdir/subdir2/subdir3/test1 dest={{testdir}}
|
||||
register: res
|
||||
- command: test "{{res.changed}}" == "False"
|
||||
|
||||
#
|
||||
# Now, test recursive behavior
|
||||
#
|
||||
|
||||
- name: "src dir w/trailing slash, dest w/trailing slash"
|
||||
command: rm -rf {{testdir}}
|
||||
- file: state=directory dest={{testdir}}
|
||||
- copy: src={{filesdir}}/subdir/ dest={{testdir}}/
|
||||
register: res
|
||||
- command: test -d {{testdir}}/subdir2
|
||||
- command: test -d {{testdir}}/subdir2/subdir3
|
||||
- command: test -d {{testdir}}/subdir2/subdir3
|
||||
- command: test -f {{testdir}}/subdir2/subdir3/test1
|
||||
- command: test -f {{testdir}}/subdir2/subdir3/test2
|
||||
- command: test "{{res.changed}}" == "True"
|
||||
- copy: src={{filesdir}}/subdir/ dest={{testdir}}/
|
||||
register: res
|
||||
- command: test "{{res.changed}}" == "False"
|
||||
|
||||
# Expecting the same behavior
|
||||
- name: "src dir w/trailing slash, dest wo/trailing slash"
|
||||
command: rm -rf {{testdir}}
|
||||
- file: state=directory dest={{testdir}}
|
||||
- copy: src={{filesdir}}/subdir/ dest={{testdir}}
|
||||
register: res
|
||||
- command: test -d {{testdir}}/subdir2
|
||||
- command: test -d {{testdir}}/subdir2/subdir3
|
||||
- command: test -d {{testdir}}/subdir2/subdir3
|
||||
- command: test -f {{testdir}}/subdir2/subdir3/test1
|
||||
- command: test -f {{testdir}}/subdir2/subdir3/test2
|
||||
- command: test "{{res.changed}}" == "True"
|
||||
- copy: src={{filesdir}}/subdir/ dest={{testdir}}
|
||||
register: res
|
||||
- command: test "{{res.changed}}" == "False"
|
||||
|
||||
- name: "src dir wo/trailing slash, dest w/trailing slash"
|
||||
command: rm -rf {{testdir}}
|
||||
- file: state=directory dest={{testdir}}
|
||||
- copy: src={{filesdir}}/subdir dest={{testdir}}/
|
||||
register: res
|
||||
- command: test -d {{testdir}}/subdir/subdir2
|
||||
- command: test -d {{testdir}}/subdir/subdir2/subdir3
|
||||
- command: test -d {{testdir}}/subdir/subdir2/subdir3
|
||||
- command: test -f {{testdir}}/subdir/subdir2/subdir3/test1
|
||||
- command: test -f {{testdir}}/subdir/subdir2/subdir3/test2
|
||||
- command: test "{{res.changed}}" == "True"
|
||||
- copy: src={{filesdir}}/subdir dest={{testdir}}/
|
||||
register: res
|
||||
- command: test "{{res.changed}}" == "False"
|
||||
|
||||
# Expecting the same behavior
|
||||
- name: "src dir wo/trailing slash, dest wo/trailing slash"
|
||||
command: rm -rf {{testdir}}
|
||||
- file: state=directory dest={{testdir}}
|
||||
- copy: src={{filesdir}}/subdir dest={{testdir}}
|
||||
register: res
|
||||
- command: test -d {{testdir}}/subdir/subdir2
|
||||
- command: test -d {{testdir}}/subdir/subdir2/subdir3
|
||||
- command: test -d {{testdir}}/subdir/subdir2/subdir3
|
||||
- command: test -f {{testdir}}/subdir/subdir2/subdir3/test1
|
||||
- command: test -f {{testdir}}/subdir/subdir2/subdir3/test2
|
||||
- command: test "{{res.changed}}" == "True"
|
||||
- copy: src={{filesdir}}/subdir dest={{testdir}}
|
||||
register: res
|
||||
- command: test "{{res.changed}}" == "False"
|
||||
|
||||
|
||||
- name: "Verifying notify handling for recursive files"
|
||||
command: rm -rf {{testdir}}
|
||||
- file: state=directory dest={{testdir}}
|
||||
- copy: src={{filesdir}}/subdir dest={{testdir}}
|
||||
notify:
|
||||
- files changed
|
||||
- meta: flush_handlers
|
||||
- command: test -f {{testdir}}/notify_fired
|
||||
|
||||
- command: rm {{testdir}}/notify_fired
|
||||
- copy: src={{filesdir}}/subdir dest={{testdir}}
|
||||
notify:
|
||||
- files changed
|
||||
- meta: flush_handlers
|
||||
- command: test ! -f {{testdir}}/notify_fired
|
||||
|
||||
handlers:
|
||||
- name: files changed
|
||||
command: touch {{testdir}}/notify_fired
|
|
@ -0,0 +1,2 @@
|
|||
test1
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
test2
|
||||
|
Loading…
Reference in a new issue