# test code for the slurp module. Based on win_slurp test cases # (c) 2014, Chris Church # This file is part of Ansible # # Ansible is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Ansible is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Ansible. If not, see . - name: Create a UTF-8 file to test with copy: content: 'We are at the café' dest: '{{ output_dir }}/foo.txt' - name: test slurping an existing file slurp: src: '{{ output_dir }}/foo.txt' register: slurp_existing - name: check slurp existing result assert: that: - 'slurp_existing.content' - 'slurp_existing.encoding == "base64"' - 'slurp_existing is not changed' - 'slurp_existing is not failed' - '"{{ slurp_existing.content | b64decode }}" == "We are at the café"' - name: Create a binary file to test with copy: src: bar.bin dest: '{{ output_dir }}/bar.bin' - name: test slurping a binary file slurp: path: '{{ output_dir }}/bar.bin' register: slurp_binary no_log: true - name: check slurp result of binary assert: that: - "slurp_binary.content" - "slurp_binary.encoding == 'base64'" - "slurp_binary is not changed" - "slurp_binary is not failed" - name: test slurping a non-existent file slurp: src: '{{ output_dir }}/i_do_not_exist' register: slurp_missing ignore_errors: true - name: check slurp missing result assert: that: - "slurp_missing is failed" - "slurp_missing.msg" - "slurp_missing is not changed" - name: Create a directory to test with file: path: '{{ output_dir }}/baz/' state: directory - name: test slurping a directory slurp: src: '{{ output_dir }}/baz' register: slurp_dir ignore_errors: true - name: check slurp directory result assert: that: - "slurp_dir is failed" - "slurp_dir.msg" - "slurp_dir is not changed" - name: test slurp with missing argument action: slurp register: slurp_no_args ignore_errors: true - name: check slurp with missing argument result assert: that: - "slurp_no_args is failed" - "slurp_no_args.msg" - "slurp_no_args is not changed" # Ensure unreadable file and directory handling and error messages # https://github.com/ansible/ansible/issues/67340 - import_tasks: 'test_unreadable.yml'