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
pull/25866/head
David Newswanger 8 years ago committed by John R Barker
parent 0be0aa5f10
commit ca16956337

@ -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

@ -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…
Cancel
Save