summaryrefslogtreecommitdiff
path: root/test/integration/targets/apt
diff options
context:
space:
mode:
authorMartin Krizek <martin.krizek@gmail.com>2018-11-14 12:12:57 +0100
committerToshio Kuratomi <a.badger@gmail.com>2018-11-14 22:48:31 -0800
commit82baf1c7467d872eddedccd6bec072d25dbb1454 (patch)
tree8fee3165d718d1b38161dfc7e4720ae2f493c543 /test/integration/targets/apt
parent373e91fcf0b4a670b87473896077e317905a7281 (diff)
downloadansible-82baf1c7467d872eddedccd6bec072d25dbb1454.tar.gz
apt: disable ubuntu repos to not change test env
(cherry picked from commit 0c86df33a48200904450de95a6ab309e0fc4cee5)
Diffstat (limited to 'test/integration/targets/apt')
-rw-r--r--test/integration/targets/apt/defaults/main.yml1
-rw-r--r--test/integration/targets/apt/tasks/main.yml55
-rw-r--r--test/integration/targets/apt/tasks/repo.yml165
-rw-r--r--test/integration/targets/apt/tasks/upgrade.yml133
4 files changed, 194 insertions, 160 deletions
diff --git a/test/integration/targets/apt/defaults/main.yml b/test/integration/targets/apt/defaults/main.yml
index 7ad2497d47..05a5780fd3 100644
--- a/test/integration/targets/apt/defaults/main.yml
+++ b/test/integration/targets/apt/defaults/main.yml
@@ -1,2 +1 @@
apt_foreign_arch: i386
-hello_old_version: 2.6-1
diff --git a/test/integration/targets/apt/tasks/main.yml b/test/integration/targets/apt/tasks/main.yml
index d7b7731940..c99dbab510 100644
--- a/test/integration/targets/apt/tasks/main.yml
+++ b/test/integration/targets/apt/tasks/main.yml
@@ -16,6 +16,14 @@
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
- block:
+ - include: 'apt.yml'
+
+ - include: 'apt-multiarch.yml'
+ when:
+ - ansible_userspace_architecture != apt_foreign_arch
+
+ - include: 'apt-builddep.yml'
+
- block:
- include: 'repo.yml'
always:
@@ -26,52 +34,5 @@
name: "{{ repodir }}"
state: absent
- - include: 'apt.yml'
-
- - include: 'apt-multiarch.yml'
- when:
- - ansible_userspace_architecture != apt_foreign_arch
-
- - include: 'apt-builddep.yml'
-
- - include: "upgrade.yml aptitude_present={{ True | bool }} upgrade_type=dist force_apt_get={{ False | bool }}"
-
- - name: Check if aptitude is installed
- command: dpkg-query --show --showformat='${db:Status-Abbrev}' aptitude
- register: aptitude_status
-
- - name: Remove aptitude, if installed, to test fall-back to apt-get
- apt:
- pkg: aptitude
- state: absent
- when:
- - aptitude_status.stdout.find('ii') != -1
-
- - include: "upgrade.yml aptitude_present={{ False | bool }} upgrade_type={{ item.upgrade_type }} force_apt_get={{ item.force_apt_get }}"
- with_items:
- - { upgrade_type: safe, force_apt_get: False }
- - { upgrade_type: full, force_apt_get: False }
- - { upgrade_type: safe, force_apt_get: True }
- - { upgrade_type: full, force_apt_get: True }
-
- - name: (Re-)Install aptitude, run same tests again
- apt:
- pkg: aptitude
- state: present
-
- - include: "upgrade.yml aptitude_present={{ True | bool }} upgrade_type={{ item.upgrade_type }} force_apt_get={{ item.force_apt_get }}"
- with_items:
- - { upgrade_type: safe, force_apt_get: False }
- - { upgrade_type: full, force_apt_get: False }
- - { upgrade_type: safe, force_apt_get: True }
- - { upgrade_type: full, force_apt_get: True }
-
- - name: Remove aptitude if not originally present
- apt:
- pkg: aptitude
- state: absent
- when:
- - aptitude_status.stdout.find('ii') == -1
-
when:
- ansible_distribution in ('Ubuntu', 'Debian')
diff --git a/test/integration/targets/apt/tasks/repo.yml b/test/integration/targets/apt/tasks/repo.yml
index af2613e2db..0288a07c7c 100644
--- a/test/integration/targets/apt/tasks/repo.yml
+++ b/test/integration/targets/apt/tasks/repo.yml
@@ -33,12 +33,64 @@
- "apt_result is success"
- "dpkg_result is success"
- "'1.0.1' in dpkg_result.stdout"
+ always:
+ - name: Clean up
+ apt:
+ name: foo
+ state: absent
+ allow_unauthenticated: yes
+
- # https://github.com/ansible/ansible/issues/35900
- - name: Clean up
+# https://github.com/ansible/ansible/issues/30638
+- block:
+ - name: Fail to install foo=1.0.1 since foo is not installed and only_upgrade is set
apt:
- name: foo
- state: absent
+ name: foo=1.0.1
+ state: installed
+ only_upgrade: yes
+ allow_unauthenticated: yes
+ ignore_errors: yes
+ register: apt_result
+
+ - name: Check that foo was not upgraded
+ assert:
+ that:
+ - "apt_result is not changed"
+
+ - apt:
+ name: foo=1.0.0
+ allow_unauthenticated: yes
+
+ - name: Upgrade foo to 1.0.1
+ apt:
+ name: foo=1.0.1
+ state: installed
+ only_upgrade: yes
+ allow_unauthenticated: yes
+ register: apt_result
+
+ - name: Check install with dpkg
+ shell: dpkg-query -l foo
+ register: dpkg_result
+
+ - name: Check if install was successful
+ assert:
+ that:
+ - "apt_result is success"
+ - "dpkg_result is success"
+ - "'1.0.1' in dpkg_result.stdout"
+ always:
+ - name: Clean up
+ apt:
+ name: foo
+ state: absent
+ allow_unauthenticated: yes
+
+
+# https://github.com/ansible/ansible/issues/35900
+- block:
+ - name: Disable ubuntu repos so system packages are not upgraded and do not change testing env
+ command: mv /etc/apt/sources.list /etc/apt/sources.list.backup
- name: Install foobar, installs foo as a dependency
apt:
@@ -61,14 +113,21 @@
that:
- "dpkg_result is failed"
- # https://github.com/ansible/ansible/issues/26298
- - name: Clean up
- apt:
- name: "{{ item }}"
- state: absent
- with_items:
- - foo
- - foobar
+ always:
+ - name: Clean up
+ apt:
+ pkg: foo,foobar
+ state: absent
+ autoclean: yes
+
+ - name: Restore ubuntu repos
+ command: mv /etc/apt/sources.list.backup /etc/apt/sources.list
+
+
+# https://github.com/ansible/ansible/issues/26298
+- block:
+ - name: Disable ubuntu repos so system packages are not upgraded and do not change testing env
+ command: mv /etc/apt/sources.list /etc/apt/sources.list.backup
- name: Install foobar, installs foo as a dependency
apt:
@@ -141,50 +200,54 @@
that:
- "autoclean_result is not changed"
- # https://github.com/ansible/ansible/issues/30638
- - name: Fail to install foo=1.0.1 since foo is not installed and only_upgrade is set
- apt:
- name: foo=1.0.1
- state: installed
- only_upgrade: yes
- allow_unauthenticated: yes
- ignore_errors: yes
- register: apt_result
+ always:
+ - name: Clean up
+ apt:
+ pkg: foo,foobar
+ state: absent
+ autoclean: yes
- - name: Check that foo was not upgraded
- assert:
- that:
- - "apt_result is not changed"
+ - name: Restore ubuntu repos
+ command: mv /etc/apt/sources.list.backup /etc/apt/sources.list
- - apt:
- name: foo=1.0.0
- allow_unauthenticated: yes
- - name: Upgrade foo to 1.0.1
- apt:
- name: foo=1.0.1
- state: installed
- only_upgrade: yes
- allow_unauthenticated: yes
- register: apt_result
+- name: Upgrades
+ block:
+ - include: "upgrade.yml aptitude_present={{ True | bool }} upgrade_type=dist force_apt_get={{ False | bool }}"
- - name: Check install with dpkg
- shell: dpkg-query -l foo
- register: dpkg_result
-
- - name: Check if install was successful
- assert:
- that:
- - "apt_result is success"
- - "dpkg_result is success"
- - "'1.0.1' in dpkg_result.stdout"
+ - name: Check if aptitude is installed
+ command: dpkg-query --show --showformat='${db:Status-Abbrev}' aptitude
+ register: aptitude_status
- always:
- - name: Clean up
+ - name: Remove aptitude, if installed, to test fall-back to apt-get
apt:
- name: "{{ item }}"
+ pkg: aptitude
state: absent
- allow_unauthenticated: yes
+ when:
+ - aptitude_status.stdout.find('ii') != -1
+
+ - include: "upgrade.yml aptitude_present={{ False | bool }} upgrade_type={{ item.upgrade_type }} force_apt_get={{ item.force_apt_get }}"
with_items:
- - foo
- - foobar
+ - { upgrade_type: safe, force_apt_get: False }
+ - { upgrade_type: full, force_apt_get: False }
+ - { upgrade_type: safe, force_apt_get: True }
+ - { upgrade_type: full, force_apt_get: True }
+
+ - name: (Re-)Install aptitude, run same tests again
+ apt:
+ pkg: aptitude
+ state: present
+
+ - include: "upgrade.yml aptitude_present={{ True | bool }} upgrade_type={{ item.upgrade_type }} force_apt_get={{ item.force_apt_get }}"
+ with_items:
+ - { upgrade_type: safe, force_apt_get: False }
+ - { upgrade_type: full, force_apt_get: False }
+ - { upgrade_type: safe, force_apt_get: True }
+ - { upgrade_type: full, force_apt_get: True }
+
+ - name: Remove aptitude if not originally present
+ apt:
+ pkg: aptitude
+ state: absent
+ when:
+ - aptitude_status.stdout.find('ii') == -1
diff --git a/test/integration/targets/apt/tasks/upgrade.yml b/test/integration/targets/apt/tasks/upgrade.yml
index b1cdaf7b4b..c76f552f75 100644
--- a/test/integration/targets/apt/tasks/upgrade.yml
+++ b/test/integration/targets/apt/tasks/upgrade.yml
@@ -1,61 +1,72 @@
----
-#### Tests for upgrade/download functions in modules/packaging/os/apt.py ####
-- name: download and install old version of hello
- apt: "deb=https://s3.amazonaws.com/ansible-ci-files/test/integration/targets/apt/hello_{{ hello_old_version }}_amd64.deb"
-
-- name: check hello version
- shell: dpkg -s hello | grep Version | awk '{print $2}'
- register: 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, force_apt_get: {{force_apt_get}}"
- apt:
- upgrade: "{{ upgrade_type }}"
- force_apt_get: "{{ force_apt_get }}"
- register: upgrade_result
-
-- name: check hello version
- shell: dpkg -s hello | grep Version | awk '{print $2}'
- register: hello_version
-
-- name: check that warning is not given when force_apt_get set
- assert:
- that:
- - "'warnings' not in upgrade_result"
- when:
- - force_apt_get
-
-- name: check that warning is given when aptitude not found and force_apt_get not set
- assert:
- that:
- - "'Could not find aptitude. Using apt-get instead' in upgrade_result.warnings[0]"
- when:
- - not aptitude_present
- - not force_apt_get
-
-- 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 }}"
- force_apt_get: "{{ force_apt_get }}"
- register: second_upgrade_result
-
-- name: check that nothing has changed (Idempotant)
- assert:
- that:
- - "second_upgrade_result.changed == false"
-
-- name: remove hello
- apt:
- pkg: hello
- state: absent
- autoclean: yes
+- block:
+ - name: Disable ubuntu repos so system packages are not upgraded and do not change testing env
+ command: mv /etc/apt/sources.list /etc/apt/sources.list.backup
+
+ - name: install foo-1.0.0
+ apt:
+ name: foo=1.0.0
+ state: present
+ allow_unauthenticated: yes
+
+ - name: check foo version
+ shell: dpkg -s foo | grep Version | awk '{print $2}'
+ register: foo_version
+
+ - name: ensure the correct version of foo has been installed
+ assert:
+ that:
+ - "'1.0.0' in foo_version.stdout"
+
+ - name: "(upgrade type: {{upgrade_type}}) upgrade packages to latest version, force_apt_get: {{force_apt_get}}"
+ apt:
+ upgrade: "{{ upgrade_type }}"
+ force_apt_get: "{{ force_apt_get }}"
+ force: yes
+ register: upgrade_result
+
+ - name: check foo version
+ shell: dpkg -s foo | grep Version | awk '{print $2}'
+ register: foo_version
+
+ - name: check that warning is not given when force_apt_get set
+ assert:
+ that:
+ - "'warnings' not in upgrade_result"
+ when:
+ - force_apt_get
+
+ - name: check that warning is given when aptitude not found and force_apt_get not set
+ assert:
+ that:
+ - "'Could not find aptitude. Using apt-get instead' in upgrade_result.warnings[0]"
+ when:
+ - not aptitude_present
+ - not force_apt_get
+
+ - name: check that old version upgraded correctly
+ assert:
+ that:
+ - "'1.0.0' not in foo_version.stdout"
+ - "{{ foo_version.changed }}"
+
+ - name: "(upgrade type: {{upgrade_type}}) upgrade packages to latest version (Idempotant)"
+ apt:
+ upgrade: "{{ upgrade_type }}"
+ force_apt_get: "{{ force_apt_get }}"
+ force: yes
+ register: second_upgrade_result
+
+ - name: check that nothing has changed (Idempotant)
+ assert:
+ that:
+ - "second_upgrade_result.changed == false"
+
+ always:
+ - name: Clean up
+ apt:
+ pkg: foo,foobar
+ state: absent
+ autoclean: yes
+
+ - name: Restore ubuntu repos
+ command: mv /etc/apt/sources.list.backup /etc/apt/sources.list