- name: Fetch with no parameters fetch: register: fetch_no_params ignore_errors: yes - name: Fetch with incorrect source type fetch: src: [1, 2] dest: "{{ output_dir }}/fetched" register: fetch_incorrect_src ignore_errors: yes - name: Try to fetch a file inside an inaccessible directory fetch: src: "{{ remote_tmp_dir }}/noaccess/file1" dest: "{{ output_dir }}" register: failed_fetch_no_access become: yes become_user: fetcher become_method: su ignore_errors: yes - name: Dest is an existing directory name without trailing slash and flat=yes, should fail fetch: src: "{{ remote_tmp_dir }}/orig" dest: "{{ output_dir }}" flat: yes register: failed_fetch_dest_dir ignore_errors: true - block: - name: create local dir for test file: path: "{{ output_dir }}/test dir/orig" state: directory delegate_to: localhost - name: Dest is a path that is calculated as an existing directory, should fail fetch: src: "{{ remote_tmp_dir }}/orig" dest: "{{ output_dir }}/test dir/" flat: true register: failed_detch_dest_calc_dir ignore_errors: true always: - name: remote local dir for test file: path: "{{ output_dir }}/test dir" state: absent delegate_to: localhost - name: Test unreachable fetch: src: "{{ remote_tmp_dir }}/orig" dest: "{{ output_dir }}" register: unreachable_fetch ignore_unreachable: true vars: ansible_user: wrong - name: Ensure fetch failed assert: that: - fetch_no_params is failed - fetch_no_params.msg is search('src and dest are required') - fetch_incorrect_src is failed - fetch_incorrect_src.msg is search('Invalid type supplied for source') - failed_fetch_no_access is failed - failed_fetch_no_access.msg is search('file is not readable') - failed_fetch_dest_dir is failed - failed_fetch_dest_dir.msg is search('dest is an existing directory') - failed_detch_dest_calc_dir is failed - failed_detch_dest_calc_dir.msg is search("calculated dest '" ~ output_dir ~ "/test dir/orig' is an existing directory") - unreachable_fetch is unreachable