summaryrefslogtreecommitdiffstats
path: root/test/integration/targets/blockinfile
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:55:42 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:55:42 +0000
commit62d9962ec7d01c95bf5732169320d3857a41446e (patch)
treef60d8fc63ff738e5f5afec48a84cf41480ee1315 /test/integration/targets/blockinfile
parentReleasing progress-linux version 2.14.13-1~progress7.99u1. (diff)
downloadansible-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')
-rw-r--r--test/integration/targets/blockinfile/tasks/append_newline.yml119
-rw-r--r--test/integration/targets/blockinfile/tasks/create_dir.yml29
-rw-r--r--test/integration/targets/blockinfile/tasks/main.yml3
-rw-r--r--test/integration/targets/blockinfile/tasks/prepend_newline.yml119
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