diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 16:04:21 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 16:04:21 +0000 |
commit | 8a754e0858d922e955e71b253c139e071ecec432 (patch) | |
tree | 527d16e74bfd1840c85efd675fdecad056c54107 /test/integration/targets/slurp/tasks/test_unreadable.yml | |
parent | Initial commit. (diff) | |
download | ansible-core-8a754e0858d922e955e71b253c139e071ecec432.tar.xz ansible-core-8a754e0858d922e955e71b253c139e071ecec432.zip |
Adding upstream version 2.14.3.upstream/2.14.3upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'test/integration/targets/slurp/tasks/test_unreadable.yml')
-rw-r--r-- | test/integration/targets/slurp/tasks/test_unreadable.yml | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/test/integration/targets/slurp/tasks/test_unreadable.yml b/test/integration/targets/slurp/tasks/test_unreadable.yml new file mode 100644 index 0000000..cab80cf --- /dev/null +++ b/test/integration/targets/slurp/tasks/test_unreadable.yml @@ -0,0 +1,74 @@ +- name: test slurping a non-existent file + slurp: + src: '{{ remote_tmp_dir }}/i_do_not_exist' + register: slurp_missing + ignore_errors: yes + +- name: Create a directory to test with + file: + path: '{{ remote_tmp_dir }}/baz/' + state: directory + +- name: test slurping a directory + slurp: + src: '{{ remote_tmp_dir }}/baz' + register: slurp_dir + ignore_errors: yes + +# Ensure unreadable file and directory handling and error messages +# https://github.com/ansible/ansible/issues/67340 + +- name: create unreadable file + copy: + content: "Hello, World!" + dest: "{{ remote_tmp_dir }}/qux.txt" + mode: '0600' + owner: root + +- name: test slurp unreadable file + slurp: + src: "{{ remote_tmp_dir }}/qux.txt" + register: slurp_unreadable_file + vars: &test_user_become + ansible_become: yes + ansible_become_user: "{{ test_user_name }}" + ansible_become_password: "{{ test_user_plaintext_password }}" + ignore_errors: yes + +- name: create unreadable directory + file: + path: "{{ remote_tmp_dir }}/test_data" + state: directory + mode: '0700' + owner: root + +- name: test slurp unreadable directory + slurp: + src: "{{ remote_tmp_dir }}/test_data" + register: slurp_unreadable_dir + vars: *test_user_become + ignore_errors: yes + +- name: Try to access file as directory + slurp: + src: "{{ remote_tmp_dir }}/qux.txt/somefile" + ignore_errors: yes + register: slurp_path_file_as_dir + +- name: check slurp failures + assert: + that: + - slurp_missing is failed + - slurp_missing.msg is search('file not found') + - slurp_missing is not changed + - slurp_unreadable_file is failed + - slurp_unreadable_file.msg is regex('^file is not readable:') + - slurp_unreadable_file is not changed + - slurp_unreadable_dir is failed + - slurp_unreadable_dir.msg is regex('^file is not readable:') + - slurp_unreadable_dir is not changed + - slurp_path_file_as_dir is failed + - slurp_path_file_as_dir is search('unable to slurp file') + - slurp_dir is failed + - slurp_dir.msg is search('source is a directory and must be a file') + - slurp_dir is not changed |