diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:55:42 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:55:42 +0000 |
commit | 62d9962ec7d01c95bf5732169320d3857a41446e (patch) | |
tree | f60d8fc63ff738e5f5afec48a84cf41480ee1315 /test/integration/targets/blockinfile | |
parent | Releasing progress-linux version 2.14.13-1~progress7.99u1. (diff) | |
download | ansible-core-62d9962ec7d01c95bf5732169320d3857a41446e.tar.xz ansible-core-62d9962ec7d01c95bf5732169320d3857a41446e.zip |
Merging upstream version 2.16.5.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'test/integration/targets/blockinfile')
4 files changed, 270 insertions, 0 deletions
diff --git a/test/integration/targets/blockinfile/tasks/append_newline.yml b/test/integration/targets/blockinfile/tasks/append_newline.yml new file mode 100644 index 0000000..ae3aef8 --- /dev/null +++ b/test/integration/targets/blockinfile/tasks/append_newline.yml @@ -0,0 +1,119 @@ +- name: Create append_newline test file + copy: + dest: "{{ remote_tmp_dir_test }}/append_newline.txt" + content: | + line1 + line2 + line3 + +- name: add content to file appending a new line + blockinfile: + path: "{{ remote_tmp_dir_test }}/append_newline.txt" + append_newline: true + insertafter: "line1" + block: | + line1.5 + register: insert_appending_a_new_line + +- name: add content to file appending a new line (again) + blockinfile: + path: "{{ remote_tmp_dir_test }}/append_newline.txt" + append_newline: true + insertafter: "line1" + block: | + line1.5 + register: insert_appending_a_new_line_again + +- name: get file content after adding content appending a new line + stat: + path: "{{ remote_tmp_dir_test }}/append_newline.txt" + register: appended_a_new_line + +- name: check content is the expected one after inserting content appending a new line + assert: + that: + - insert_appending_a_new_line is changed + - insert_appending_a_new_line_again is not changed + - appended_a_new_line.stat.checksum == "525ffd613a0b0eb6675e506226dc2adedf621f34" + +- name: add content to file without appending a new line + blockinfile: + path: "{{ remote_tmp_dir_test }}/append_newline.txt" + marker: "#{mark} UNWRAPPED TEXT" + insertafter: "line2" + block: | + line2.5 + register: insert_without_appending_new_line + +- name: get file content after adding content without appending a new line + stat: + path: "{{ remote_tmp_dir_test }}/append_newline.txt" + register: without_appending_new_line + +- name: check content is the expected one after inserting without appending a new line + assert: + that: + - insert_without_appending_new_line is changed + - without_appending_new_line.stat.checksum == "d5f5ed1428af50b5484a5184dc7e1afda1736646" + +- name: append a new line to existing block + blockinfile: + path: "{{ remote_tmp_dir_test }}/append_newline.txt" + append_newline: true + marker: "#{mark} UNWRAPPED TEXT" + insertafter: "line2" + block: | + line2.5 + register: append_new_line_to_existing_block + +- name: get file content after appending a line to existing block + stat: + path: "{{ remote_tmp_dir_test }}/append_newline.txt" + register: new_line_appended + +- name: check content is the expected one after appending a new line to an existing block + assert: + that: + - append_new_line_to_existing_block is changed + - new_line_appended.stat.checksum == "b09dd16be73a0077027d5a324294db8a75a7b0f9" + +- name: add a block appending a new line at the end of the file + blockinfile: + path: "{{ remote_tmp_dir_test }}/append_newline.txt" + append_newline: true + marker: "#{mark} END OF FILE TEXT" + insertafter: "line3" + block: | + line3.5 + register: insert_appending_new_line_at_the_end_of_file + +- name: get file content after appending new line at the end of the file + stat: + path: "{{ remote_tmp_dir_test }}/append_newline.txt" + register: inserted_block_appending_new_line_at_the_end_of_the_file + +- name: check content is the expected one after adding a block appending a new line at the end of the file + assert: + that: + - insert_appending_new_line_at_the_end_of_file is changed + - inserted_block_appending_new_line_at_the_end_of_the_file.stat.checksum == "9b90722b84d9bdda1be781cc4bd44d8979887691" + + +- name: Removing a block with append_newline set to true does not append another line + blockinfile: + path: "{{ remote_tmp_dir_test }}/append_newline.txt" + append_newline: true + marker: "#{mark} UNWRAPPED TEXT" + state: absent + register: remove_block_appending_new_line + +- name: get file content after removing existing block appending new line + stat: + path: "{{ remote_tmp_dir_test }}/append_newline.txt" + register: removed_block_appending_new_line + +- name: check content is the expected one after removing a block appending a new line + assert: + that: + - remove_block_appending_new_line is changed + - removed_block_appending_new_line.stat.checksum == "9a40d4c0969255cd6147537b38309d69a9b10049" diff --git a/test/integration/targets/blockinfile/tasks/create_dir.yml b/test/integration/targets/blockinfile/tasks/create_dir.yml new file mode 100644 index 0000000..a16ada5 --- /dev/null +++ b/test/integration/targets/blockinfile/tasks/create_dir.yml @@ -0,0 +1,29 @@ +- name: Set up a directory to test module error handling + file: + path: "{{ remote_tmp_dir_test }}/unreadable" + state: directory + mode: "000" + +- name: Create a directory and file with blockinfile + blockinfile: + path: "{{ remote_tmp_dir_test }}/unreadable/createme/file.txt" + block: | + line 1 + line 2 + state: present + create: yes + register: permissions_error + ignore_errors: yes + +- name: assert the error looks right + assert: + that: + - permissions_error.msg.startswith('Error creating') + when: "ansible_user_id != 'root'" + +- name: otherwise (root) assert the directory and file exists + stat: + path: "{{ remote_tmp_dir_test }}/unreadable/createme/file.txt" + register: path_created + failed_when: path_created.exists is false + when: "ansible_user_id == 'root'" diff --git a/test/integration/targets/blockinfile/tasks/main.yml b/test/integration/targets/blockinfile/tasks/main.yml index 054e554..f26cb16 100644 --- a/test/integration/targets/blockinfile/tasks/main.yml +++ b/test/integration/targets/blockinfile/tasks/main.yml @@ -31,6 +31,7 @@ - import_tasks: add_block_to_existing_file.yml - import_tasks: create_file.yml +- import_tasks: create_dir.yml - import_tasks: preserve_line_endings.yml - import_tasks: block_without_trailing_newline.yml - import_tasks: file_without_trailing_newline.yml @@ -39,3 +40,5 @@ - import_tasks: insertafter.yml - import_tasks: insertbefore.yml - import_tasks: multiline_search.yml +- import_tasks: append_newline.yml +- import_tasks: prepend_newline.yml diff --git a/test/integration/targets/blockinfile/tasks/prepend_newline.yml b/test/integration/targets/blockinfile/tasks/prepend_newline.yml new file mode 100644 index 0000000..535db01 --- /dev/null +++ b/test/integration/targets/blockinfile/tasks/prepend_newline.yml @@ -0,0 +1,119 @@ +- name: Create prepend_newline test file + copy: + dest: "{{ remote_tmp_dir_test }}/prepend_newline.txt" + content: | + line1 + line2 + line3 + +- name: add content to file prepending a new line at the beginning of the file + blockinfile: + path: "{{ remote_tmp_dir_test }}/prepend_newline.txt" + prepend_newline: true + insertbefore: "line1" + block: | + line0.5 + register: insert_prepending_a_new_line_at_the_beginning_of_the_file + +- name: get file content after adding content prepending a new line at the beginning of the file + stat: + path: "{{ remote_tmp_dir_test }}/prepend_newline.txt" + register: prepended_a_new_line_at_the_beginning_of_the_file + +- name: check content is the expected one after prepending a new line at the beginning of the file + assert: + that: + - insert_prepending_a_new_line_at_the_beginning_of_the_file is changed + - prepended_a_new_line_at_the_beginning_of_the_file.stat.checksum == "bfd32c880bbfadd1983c67836c46bf8ed9d50343" + +- name: add content to file prepending a new line + blockinfile: + path: "{{ remote_tmp_dir_test }}/prepend_newline.txt" + prepend_newline: true + marker: "#{mark} WRAPPED TEXT" + insertafter: "line1" + block: | + line1.5 + register: insert_prepending_a_new_line + +- name: add content to file prepending a new line (again) + blockinfile: + path: "{{ remote_tmp_dir_test }}/prepend_newline.txt" + prepend_newline: true + marker: "#{mark} WRAPPED TEXT" + insertafter: "line1" + block: | + line1.5 + register: insert_prepending_a_new_line_again + +- name: get file content after adding content prepending a new line + stat: + path: "{{ remote_tmp_dir_test }}/prepend_newline.txt" + register: prepended_a_new_line + +- name: check content is the expected one after inserting content prepending a new line + assert: + that: + - insert_prepending_a_new_line is changed + - insert_prepending_a_new_line_again is not changed + - prepended_a_new_line.stat.checksum == "d5b8b42690f4a38b9a040adc3240a6f81ad5f8ee" + +- name: add content to file without prepending a new line + blockinfile: + path: "{{ remote_tmp_dir_test }}/prepend_newline.txt" + marker: "#{mark} UNWRAPPED TEXT" + insertafter: "line3" + block: | + line3.5 + register: insert_without_prepending_new_line + +- name: get file content after adding content without prepending a new line + stat: + path: "{{ remote_tmp_dir_test }}/prepend_newline.txt" + register: without_prepending_new_line + +- name: check content is the expected one after inserting without prepending a new line + assert: + that: + - insert_without_prepending_new_line is changed + - without_prepending_new_line.stat.checksum == "ad06200e7ee5b22b7eff4c57075b42d038eaffb6" + +- name: prepend a new line to existing block + blockinfile: + path: "{{ remote_tmp_dir_test }}/prepend_newline.txt" + prepend_newline: true + marker: "#{mark} UNWRAPPED TEXT" + insertafter: "line3" + block: | + line3.5 + register: prepend_new_line_to_existing_block + +- name: get file content after prepending a new line to an existing block + stat: + path: "{{ remote_tmp_dir_test }}/prepend_newline.txt" + register: new_line_prepended + +- name: check content is the expected one after prepending a new line to an existing block + assert: + that: + - prepend_new_line_to_existing_block is changed + - new_line_prepended.stat.checksum == "f2dd48160fb3c7c8e02d292666a1a3f08503f6bf" + +- name: Removing a block with prepend_newline set to true does not prepend another line + blockinfile: + path: "{{ remote_tmp_dir_test }}/prepend_newline.txt" + prepend_newline: true + marker: "#{mark} UNWRAPPED TEXT" + state: absent + register: remove_block_prepending_new_line + +- name: get file content after removing existing block prepending new line + stat: + path: "{{ remote_tmp_dir_test }}/prepend_newline.txt" + register: removed_block_prepending_new_line + +- name: check content is the expected one after removing a block prepending a new line + assert: + that: + - remove_block_prepending_new_line is changed + - removed_block_prepending_new_line.stat.checksum == "c97c3da7d607acfd5d786fbb81f3d93d867c914a"
\ No newline at end of file |