- name: regression/issue_152__virtualenv_python_fails.yml
  gather_facts: true
  hosts: test-targets
  tasks:
    - custom_python_detect_environment:
      register: lout

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

    - custom_python_detect_environment:
      vars:
        ansible_python_interpreter: /tmp/issue_152_virtualenv/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: /tmp/issue_152_virtualenv/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 /tmp/issue_152_virtualenv
      file:
        path: /tmp/issue_152_virtualenv
        state: absent
      when:
        - lout.python.version.full is version('2.7', '>=', strict=True)
  tags:
    - issue_152
