mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
added integration tests for apt upgrade (#25670)
* added integration tests for apt upgrade changed version number for hello to 2.6 so that it works with Ubuntu 12.04 prevent tests from checking if aptitude is installed on non ubuntu systems changed ordering on when statements for safe and full upgrade types so that the OS check happens before the aptitude check added integration tests for apt upgrade changed version number for hello to 2.6 so that it works with Ubuntu 12.04 * Moved additions to tasks/main.yml to make revisions easier. Changed tasks to multiline format
This commit is contained in:
parent
0be0aa5f10
commit
ca16956337
4 changed files with 71 additions and 6 deletions
|
@ -1 +1,2 @@
|
||||||
apt_foreign_arch: i386
|
apt_foreign_arch: i386
|
||||||
|
hello_old_version: 2.6-1
|
||||||
|
|
|
@ -116,6 +116,7 @@
|
||||||
- name: check hello version
|
- name: check hello version
|
||||||
shell: dpkg -s hello | grep Version | awk '{print $2}'
|
shell: dpkg -s hello | grep Version | awk '{print $2}'
|
||||||
register: hello_version
|
register: hello_version
|
||||||
|
|
||||||
- name: check hello architecture
|
- name: check hello architecture
|
||||||
shell: dpkg -s hello | grep Architecture | awk '{print $2}'
|
shell: dpkg -s hello | grep Architecture | awk '{print $2}'
|
||||||
register: hello_architecture
|
register: hello_architecture
|
||||||
|
|
|
@ -15,11 +15,29 @@
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
- include: 'apt.yml'
|
- include: 'apt.yml'
|
||||||
when: ansible_distribution in ('Ubuntu', 'Debian')
|
when: ansible_distribution in ('Ubuntu', 'Debian')
|
||||||
|
|
||||||
- include: 'apt-multiarch.yml'
|
- include: 'apt-multiarch.yml'
|
||||||
when: ansible_distribution in ('Ubuntu', 'Debian') and ansible_userspace_architecture != apt_foreign_arch
|
when: ansible_distribution in ('Ubuntu', 'Debian') and ansible_userspace_architecture != apt_foreign_arch
|
||||||
|
|
||||||
- include: 'apt-builddep.yml'
|
- include: 'apt-builddep.yml'
|
||||||
when: ansible_distribution in ('Ubuntu', 'Debian')
|
when: ansible_distribution in ('Ubuntu', 'Debian')
|
||||||
|
|
||||||
|
- name: Check if aptitude is installed
|
||||||
|
command: dpkg-query -l aptitude
|
||||||
|
register: deb_check
|
||||||
|
when: ansible_distribution in ('Ubuntu', 'Debian')
|
||||||
|
|
||||||
|
- include: upgrade.yml upgrade_type=dist
|
||||||
|
when: ansible_distribution in ('Ubuntu', 'Debian')
|
||||||
|
|
||||||
|
- include: upgrade.yml upgrade_type=safe
|
||||||
|
when:
|
||||||
|
- ansible_distribution in ('Ubuntu', 'Debian')
|
||||||
|
- deb_check.stdout.find('no packages found') != -1
|
||||||
|
|
||||||
|
- include: upgrade.yml upgrade_type=full
|
||||||
|
when:
|
||||||
|
- ansible_distribution in ('Ubuntu', 'Debian')
|
||||||
|
- deb_check.stdout.find('no packages found') != -1
|
||||||
|
|
45
test/integration/targets/apt/tasks/upgrade.yml
Normal file
45
test/integration/targets/apt/tasks/upgrade.yml
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
---
|
||||||
|
#### Tests for upgrade/download functions in modules/packaging/os/apt.py ####
|
||||||
|
- name: download and install old version of hello
|
||||||
|
apt: "deb=https://launchpad.net/ubuntu/+archive/primary/+files/hello_{{ hello_old_version }}_amd64.deb"
|
||||||
|
|
||||||
|
- name: check hello version
|
||||||
|
shell: dpkg -s hello | grep Version | awk '{print $2}'
|
||||||
|
register: hello_version
|
||||||
|
|
||||||
|
- debug: var=hello_version
|
||||||
|
|
||||||
|
- name: ensure the correct version of hello has been installed
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- "{{ hello_version.stdout }}=={{ hello_old_version }}"
|
||||||
|
|
||||||
|
- name: "(upgrade type: {{upgrade_type}}) upgrade packages to latest version"
|
||||||
|
apt:
|
||||||
|
upgrade: "{{ upgrade_type }}"
|
||||||
|
|
||||||
|
- name: check hello version
|
||||||
|
shell: dpkg -s hello | grep Version | awk '{print $2}'
|
||||||
|
register: hello_version
|
||||||
|
|
||||||
|
- name: check that old version upgraded correctly
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- "{{ hello_version.stdout }}!={{ hello_old_version }}"
|
||||||
|
- "{{ hello_version.changed }}"
|
||||||
|
|
||||||
|
- name: "(upgrade type: {{upgrade_type}}) upgrade packages to latest version (Idempotant)"
|
||||||
|
apt:
|
||||||
|
upgrade: "{{ upgrade_type }}"
|
||||||
|
register: result
|
||||||
|
|
||||||
|
- name: check that nothing has changed (Idempotant)
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- "result.changed == false"
|
||||||
|
|
||||||
|
- name: remove hello
|
||||||
|
apt:
|
||||||
|
pkg: hello
|
||||||
|
state: absent
|
||||||
|
autoclean: yes
|
Loading…
Reference in a new issue