diff options
Diffstat (limited to 'test/integration/targets/dpkg_selections')
4 files changed, 99 insertions, 0 deletions
diff --git a/test/integration/targets/dpkg_selections/aliases b/test/integration/targets/dpkg_selections/aliases new file mode 100644 index 0000000..c0d5684 --- /dev/null +++ b/test/integration/targets/dpkg_selections/aliases @@ -0,0 +1,6 @@ +shippable/posix/group1 +destructive +skip/freebsd +skip/osx +skip/macos +skip/rhel diff --git a/test/integration/targets/dpkg_selections/defaults/main.yaml b/test/integration/targets/dpkg_selections/defaults/main.yaml new file mode 100644 index 0000000..94bd9bc --- /dev/null +++ b/test/integration/targets/dpkg_selections/defaults/main.yaml @@ -0,0 +1 @@ +hello_old_version: 2.6-1 diff --git a/test/integration/targets/dpkg_selections/tasks/dpkg_selections.yaml b/test/integration/targets/dpkg_selections/tasks/dpkg_selections.yaml new file mode 100644 index 0000000..080db26 --- /dev/null +++ b/test/integration/targets/dpkg_selections/tasks/dpkg_selections.yaml @@ -0,0 +1,89 @@ +- name: download and install old version of hello + apt: "deb=https://ci-files.testing.ansible.com/test/integration/targets/dpkg_selections/hello_{{ hello_old_version }}_amd64.deb" + +- name: freeze version for hello + dpkg_selections: + name: hello + selection: hold + +- name: get dpkg selections + shell: "dpkg --get-selections | grep hold" + register: result + +- debug: var=result + +- name: check that hello is marked as hold + assert: + that: + - "'hello' in result.stdout" + +- name: attempt to upgrade hello + apt: + name: hello + state: latest + ignore_errors: yes + +- name: check hello version + shell: dpkg -s hello | grep Version | awk '{print $2}' + register: hello_version + +- name: ensure hello was not upgraded + assert: + that: + - hello_version.stdout == hello_old_version + +- name: remove version freeze + dpkg_selections: + name: hello + selection: install + +- name: upgrade hello + apt: + name: hello + state: latest + +- 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 + +- name: set hello to deinstall + dpkg_selections: + name: hello + selection: deinstall + +- name: get dpkg selections + shell: "dpkg --get-selections | grep deinstall" + register: result + +- debug: var=result + +- name: check that hello is marked as deinstall + assert: + that: + - "'hello' in result.stdout" + +- name: set hello to purge + dpkg_selections: + name: hello + selection: purge + +- name: get dpkg selections + shell: "dpkg --get-selections | grep purge" + register: result + +- debug: var=result + +- name: check that hello is marked as purge + assert: + that: + - "'hello' in result.stdout" + +- name: remove hello + apt: + name: hello + state: absent diff --git a/test/integration/targets/dpkg_selections/tasks/main.yaml b/test/integration/targets/dpkg_selections/tasks/main.yaml new file mode 100644 index 0000000..abf9fa1 --- /dev/null +++ b/test/integration/targets/dpkg_selections/tasks/main.yaml @@ -0,0 +1,3 @@ +--- + - include_tasks: file='dpkg_selections.yaml' + when: ansible_distribution in ('Ubuntu', 'Debian') |