diff --git a/test-playbooks/ensure-tox.yaml b/test-playbooks/ensure-tox.yaml new file mode 100644 index 000000000..593759365 --- /dev/null +++ b/test-playbooks/ensure-tox.yaml @@ -0,0 +1,63 @@ +- hosts: all + name: Test ensure-tox when tox is installed in system default + tasks: + - name: Verify tox is pre-installed on OpenDev images + command: "tox --version" + - name: Run ensure-tox with tox already installed + include_role: + name: ensure-tox + - name: Verify tox_executable is not set by ensure-tox + assert: + that: + - tox_executable is not defined + +- hosts: all + name: Test ensure-tox when tox_executable is already set and tox is installed + tasks: + - name: Run ensure-tox with tox not installed + include_role: + name: ensure-tox + vars: + tox_executable: "python3 -m tox" + - name: Verify tox_executable is not set by ensure-tox + assert: + that: + - tox_executable is not defined + +- hosts: all + name: Remove pre-installed tox + tasks: + - name: Remove tox package with pip + shell: pip uninstall -y tox + become: true + ignore_errors: true + - name: Remove tox package with pip3 + shell: pip3 uninstall -y tox + become: true + ignore_errors: true + - name: Verify tox is not installed + command: "tox --version" + register: result + failed_when: result.rc == 0 + +- hosts: all + name: Test ensure-tox when tox is not installed + tasks: + - name: Remove tox package + shell: pip uninstall tox || pip3 uninstall tox + become: true + - name: Verify tox is not installed + command: "tox --version" + register: result + failed_when: result.rc == 0 + - name: Run ensure-tox with tox not installed + include_role: + name: ensure-tox + - name: Verify tox_executable is set + assert: + that: + - tox_executable == "{{ ansible_user_dir }}/.local/bin/tox" + - name: Verify tox is installed + command: "{{ tox_executable }} --version" + register: result + failed_when: result.rc != 0 diff --git a/zuul-tests.d/python-jobs.yaml b/zuul-tests.d/python-jobs.yaml index e2dafeb0b..4866d1ae0 100644 --- a/zuul-tests.d/python-jobs.yaml +++ b/zuul-tests.d/python-jobs.yaml @@ -7,6 +7,13 @@ vars: role_name: ensure-sphinx +- job: + name: zuul-jobs-test-ensure-tox + description: Test the ensure-tox role + files: + - roles/ensure-tox/.* + run: test-playbooks/ensure-tox.yaml + - job: name: zuul-jobs-test-tox-siblings description: Test the tox role's sibling functionality @@ -46,6 +53,7 @@ check: jobs: &id001 - zuul-jobs-test-ensure-sphinx + - zuul-jobs-test-ensure-tox - zuul-jobs-test-tox-siblings - zuul-jobs-test-fetch-tox-output - zuul-jobs-test-fetch-tox-output-synchronize