- hosts: all
  name: Remove any pre-installed nox
  tasks:
    - name: Remove nox package with pip
      command: pip uninstall -y nox
      become: true
      failed_when: false
    - name: Remove nox package with pip3
      command: pip3 uninstall -y nox
      become: true
      failed_when: false
    - name: Verify nox is not installed
      command: "nox --version"
      register: result
      failed_when: result.rc == 0

- hosts: all
  name: Test ensure-nox installs into user environment
  tasks:
    - name: Verify nox is not installed
      command: "nox --version"
      register: result
      failed_when: result.rc == 0
    - name: Run ensure-nox with nox not installed
      include_role:
        name: ensure-nox
    - name: Verify nox_executable is set
      assert:
        that:
          - nox_executable == ansible_user_dir + '/.local/nox/bin/nox'
    - name: Verify nox is installed
      command: "{{ nox_executable }} --version"
      register: result
      failed_when: result.rc != 0

- hosts: all
  name: Test ensure-nox when nox_executable is set to an already installed nox
  tasks:
    - name: Create a virtualenv
      command: '{{ ensure_pip_virtualenv_command }} {{ ansible_user_dir }}/nox-venv'
    - name: Install nox to local venv
      command: '{{ ansible_user_dir }}/nox-venv/bin/pip install nox'
    - name: Run ensure-nox pointing to an already installed nox
      include_role:
        name: ensure-nox
      vars:
        nox_executable: "{{ ansible_user_dir }}/nox-venv/bin/nox"
    - name: Verify nox_executable is set to the virtualenv nox
      assert:
        that:
          - nox_executable == ansible_user_dir + '/nox-venv/bin/nox'