- name: regression/issue_152__virtualenv_python_fails.yml
  gather_facts: true
  hosts: test-targets
  vars:
    virtualenv_path: /tmp/issue_152_virtualenv
    virtualenv_python: "{{ ansible_facts.python.executable }}"
  tasks:
    - custom_python_detect_environment:
      register: lout

    # Can't use pip module because it can't create virtualenvs, must call it
    # directly.
    - name: Create temporary virtualenv
      environment:
        https_proxy: "{{ lookup('env', 'https_proxy')|default('') }}"
        no_proxy: "{{ lookup('env', 'no_proxy')|default('') }}"
        PATH: "{{ lookup('env', 'PATH') }}"
      command:
        argv: "{{ virtualenv_create_argv }}"
        creates: "{{ virtualenv_path }}"
      when:
        - lout.python.version.full is version('2.7', '>=', strict=True)

    - custom_python_detect_environment:
      vars:
        ansible_python_interpreter: "{{ virtualenv_path }}/bin/python"
      register: out
      when:
        - lout.python.version.full is version('2.7', '>=', strict=True)

    - name: Check virtualenv was used
      # On macOS runners a symlink /tmp -> /private/tmp has been seen
      vars:
        requested_executable: "{{ virtualenv_path }}/bin/python"
        expected_executables:
          - "{{ requested_executable }}"
          - "{{ requested_executable.replace('/tmp', out.fs['/tmp'].resolved) }}"
      assert:
        that:
          - out.sys_executable in expected_executables
        fail_msg: |
          out={{ out }}
      when:
        - lout.python.version.full is version('2.7', '>=', strict=True)

    - name: Cleanup temporary virtualenv
      file:
        path: "{{ virtualenv_path }}"
        state: absent
      when:
        - lout.python.version.full is version('2.7', '>=', strict=True)
  tags:
    - issue_152
