1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2026-03-22 05:09:12 +00:00
community.general/tests/integration/targets/uv_python/tasks/main.yaml
2026-03-07 16:10:03 +00:00

266 lines
No EOL
7 KiB
YAML

---
####################################################################
# WARNING: These are designed specifically for Ansible tests #
# and should not be used as examples of how to write Ansible roles #
####################################################################
# Copyright (c) Ansible Project
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
- name: Install uv
shell: |
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.10.5/uv-installer.sh | sh
environment:
UV_INSTALL_DIR: /usr/local/bin
- name: Check if Python 3.14 exists already
command: uv python find 3.14
ignore_errors: true
register: check_python_314_exists
- name: Install Python 3.14 in check mode
uv_python:
version: 3.14
state: present
check_mode: true
register: install_check_mode
- name: Verify Python 3.14 installation in check mode
assert:
that:
- install_check_mode.changed == check_python_314_exists.failed
- install_check_mode.failed is false
- install_check_mode.python_versions | length >= 1
- name: Install Python 3.14
uv_python:
version: 3.14
state: present
register: install_python
- name: Verify Python 3.14 installation
assert:
that:
- install_python.changed == check_python_314_exists.failed
- install_python.failed is false
- install_python.python_versions | length >= 1
- install_python.python_paths | length >= 1
- name: Re-install Python 3.14
uv_python:
version: 3.14
state: present
register: reinstall_python
- name: Verify Python 3.14 re-installation
assert:
that:
- reinstall_python.changed is false
- reinstall_python.failed is false
- reinstall_python.python_versions | length >= 1
- reinstall_python.python_paths | length >= 1
- name: Check if Python 3.13.5 exists already
command: uv python find 3.13.5
ignore_errors: true
register: check_python_3135_exists
- name: Install Python 3.13.5
uv_python:
version: 3.13.5
register: install_python_3135
- name: Verify Python 3.13.5 installation
assert:
that:
- install_python_3135.changed == check_python_3135_exists.failed
- install_python_3135.failed is false
- '"3.13.5" in install_python_3135.python_versions'
- install_python_3135.python_paths | length >= 1
- name: Re-install Python 3.13.5
uv_python:
version: 3.13.5
state: present
register: reinstall_python
- name: Verify Python 3.13.5 installation
assert:
that:
- reinstall_python.changed is false
- reinstall_python.failed is false
- '"3.13.5" in reinstall_python.python_versions'
- name: Remove uninstalled Python 3.10 # removes latest patch version for 3.10 if exists
uv_python:
version: "3.10"
state: absent
register: remove_python
- name: Verify Python 3.10 deletion
assert:
that:
- remove_python.changed is false
- remove_python.failed is false
- remove_python.python_versions | length == 0
- name: Remove Python 3.13.5 in check mode
uv_python:
version: 3.13.5
state: absent
check_mode: true
register: remove_python_in_check_mode
- name: Verify Python 3.13.5 deletion in check mode
assert:
that:
- remove_python_in_check_mode.changed == install_python_3135.changed
- remove_python_in_check_mode.failed is false
- name: Additional check for Python 3.13.5 deletion in check mode
when: install_python_3135.changed is true
assert:
that:
- '"3.13.5" in remove_python_in_check_mode.python_versions'
- remove_python_in_check_mode.python_paths | length >= 1
- name: Remove Python 3.13.5
uv_python:
version: 3.13.5
state: absent
register: remove_python
- name: Verify Python 3.13.5 deletion
assert:
that:
- remove_python.changed == install_python_3135.changed
- remove_python.failed is false
- name: Additional check for Python 3.13.5 deletion
when: install_python_3135.changed is true
assert:
that:
- remove_python.python_paths | length >= 1
- '"3.13.5" in remove_python.python_versions'
- name: Remove Python 3.13.5 again
uv_python:
version: 3.13.5
state: absent
register: remove_python
- name: Verify Python 3.13.5 deletion again
assert:
that:
- remove_python.changed is false
- remove_python.failed is false
- remove_python.python_versions | length == 0
- remove_python.python_paths | length == 0
- name: Upgrade Python 3.13
uv_python:
version: 3.13
state: latest
register: upgrade_python
- name: Verify Python 3.13 upgrade
assert:
that:
- upgrade_python.changed is true
- upgrade_python.failed is false
- upgrade_python.python_versions | length >= 1
- upgrade_python.python_paths | length >= 1
- name: Upgrade Python 3.13 in check mode
uv_python:
version: 3.13
state: latest
check_mode: true
register: upgrade_python
- name: Verify Python 3.13 upgrade in check mode
assert:
that:
- upgrade_python.changed is false
- upgrade_python.failed is false
- upgrade_python.python_versions | length >= 1
- name: Upgrade Python 3.13 again
uv_python:
version: 3.13
state: latest
check_mode: true
register: upgrade_python
- name: Verify Python 3.13 upgrade again
assert:
that:
- upgrade_python.changed is false
- upgrade_python.failed is false
- upgrade_python.python_versions | length >= 1
- name: Install unexisting Python version in check mode
uv_python:
version: 3.12.13
state: present
register: unexisting_python_check_mode
ignore_errors: true
check_mode: true
- name: Verify unexisting Python 3.12.13 install in check mode
assert:
that:
- unexisting_python_check_mode.changed is false
- unexisting_python_check_mode.failed is true
- '"Version 3.12.13 is not available." in unexisting_python_check_mode.msg'
- name: Install unexisting Python version
uv_python:
state: present
version: 3.12.13
register: unexisting_python
ignore_errors: true
- name: Verify unexisting Python 3.12.13 install
assert:
that:
- unexisting_python.changed is false
- unexisting_python.failed is true
- name: Install unexisting Python version with latest state
uv_python:
version: 3.12.13
state: latest
register: unexisting_python
ignore_errors: true
- name: Verify Python 3.12.13 install with latest state
assert:
that:
- unexisting_python.changed is false
- unexisting_python.failed is true
- name: Delete Python 3.13 version
uv_python:
version: 3.13
state: absent
register: uninstall_result
- name: Verify Python 3.13 deletion
assert:
that:
- uninstall_result.changed is true
- uninstall_result.failed is false
- '"3.13.12" in uninstall_result.python_versions'
- name: No specified version
uv_python:
state: latest
ignore_errors: true
register: no_version
- name: Verify failure when no version is specified
assert:
that:
- no_version.failed is true