# issue #397, #454: newer Ansibles rely on atexit to cleanup their temporary
# directories. Ensure atexit handlers calling shutil.rmtree() run during runner
# completion.

- name: integration/runner/atexit.yml
  hosts: test-targets
  gather_facts: false
  any_errors_fatal: false
  vars:
    path: /tmp/atexit-should-delete-this
  tasks:
    - name: Verify a run with a healthy atexit handler
      custom_python_run_script:
        script: |
          import atexit, os, shutil
          path = '{{path}}'
          os.mkdir(path, int('777', 8))
          atexit.register(shutil.rmtree, path)

    - name: Stat atexit file
      stat:
        path: "{{path}}"
      register: out

    - assert:
        that:
        - not out.stat.exists
        fail_msg: |
          out={{ out }}
  tags:
    - atexit
