From 8a754e0858d922e955e71b253c139e071ecec432 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 28 Apr 2024 18:04:21 +0200 Subject: Adding upstream version 2.14.3. Signed-off-by: Daniel Baumann --- .../targets/slurp/tasks/test_unreadable.yml | 74 ++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 test/integration/targets/slurp/tasks/test_unreadable.yml (limited to 'test/integration/targets/slurp/tasks/test_unreadable.yml') 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 -- cgit v1.2.3