- name: Hello, World!
  helloworld:
  register: hello_world

- assert:
    that:
      - 'hello_world.msg == "Hello, World!"'

- name: Hello, Ansible!
  helloworld:
  args:
    name: Ansible
  register: hello_ansible

- assert:
    that:
      - 'hello_ansible.msg == "Hello, Ansible!"'

- name: Goodbye, Ansible!
  helloworld:
  args:
    salutation: Goodbye
    name: Ansible
  register: goodbye_ansible

- assert:
    that:
      - 'goodbye_ansible.msg == "Goodbye, Ansible!"'

- name: Copy module to remote
  copy:
    src: "{{ role_path }}/library/helloworld.py"
    dest: "{{ remote_tmp_dir }}/helloworld.py"

- name: Execute module directly
  command: '{{ ansible_python_interpreter|default(ansible_playbook_python) }} {{ remote_tmp_dir }}/helloworld.py'
  register: direct
  ignore_errors: true

- assert:
    that:
      - direct is failed
      - 'direct.stdout | from_json == {"msg": "No argument file provided", "failed": true}'
