diff options
author | Toshio Kuratomi <a.badger@gmail.com> | 2016-10-31 10:38:31 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-31 10:38:31 -0700 |
commit | 02859a3e32bd7079b99c7d7f3f16c94edc42de9f (patch) | |
tree | 7ac65af80069c6a4603832993f2cc8993ec16b01 /test/integration/targets | |
parent | 6d9771bbf8217ad89090ccd7b2471664bf53b8b3 (diff) | |
download | ansible-02859a3e32bd7079b99c7d7f3f16c94edc42de9f.tar.gz |
Add tests for dnf modelled after the yum tests (#18226)
Diffstat (limited to 'test/integration/targets')
-rw-r--r-- | test/integration/targets/dnf/meta/main.yml | 2 | ||||
-rw-r--r-- | test/integration/targets/dnf/tasks/dnf.yml | 212 | ||||
-rw-r--r-- | test/integration/targets/dnf/tasks/main.yml | 23 |
3 files changed, 237 insertions, 0 deletions
diff --git a/test/integration/targets/dnf/meta/main.yml b/test/integration/targets/dnf/meta/main.yml new file mode 100644 index 0000000000..07faa21776 --- /dev/null +++ b/test/integration/targets/dnf/meta/main.yml @@ -0,0 +1,2 @@ +dependencies: + - prepare_tests diff --git a/test/integration/targets/dnf/tasks/dnf.yml b/test/integration/targets/dnf/tasks/dnf.yml new file mode 100644 index 0000000000..b381334086 --- /dev/null +++ b/test/integration/targets/dnf/tasks/dnf.yml @@ -0,0 +1,212 @@ +# UNINSTALL 'python2-dnf' +# The `dnf` module has the smarts to auto-install the relevant python +# bindings. To test, we will first uninstall python2-dnf (so that the tests +# on python2 will require python2-dnf) +- name: check python2-dnf with rpm + shell: rpm -q python2-dnf + register: rpm_result + ignore_errors: true + +# Don't uninstall python2-dnf with the `dnf` module in case it needs to load +# some dnf python files after the package is uninstalled. +- name: uninstall python2-dnf with shell + shell: dnf -y remove python2-dnf + when: rpm_result|success + +# UNINSTALL +# With 'python2-dnf' uninstalled, the first call to 'dnf' should install +# python2-dnf. +- name: uninstall sos + dnf: + name: sos + state: removed + register: dnf_result + +- name: check sos with rpm + shell: rpm -q sos + failed_when: False + register: rpm_result + +- debug: var=dnf_result +- debug: var=rpm_result + +- name: verify uninstallation of sos + assert: + that: + - "not dnf_result.failed | default(False)" + - "rpm_result.rc == 1" + +# UNINSTALL AGAIN +- name: uninstall sos + dnf: + name: sos + state: removed + register: dnf_result + +- name: verify no change on re-uninstall + assert: + that: + - "not dnf_result.changed" + +# INSTALL +- name: install sos + dnf: + name: sos + state: present + register: dnf_result + +- name: check sos with rpm + shell: rpm -q sos + failed_when: False + register: rpm_result + +- debug: var=dnf_result +- debug: var=rpm_result + +- name: verify installation of sos + assert: + that: + - "not dnf_result.failed | default(False)" + - "dnf_result.changed" + - "rpm_result.rc == 0" + +- name: verify dnf module outputs + assert: + that: + - "'changed' in dnf_result" + - "'results' in dnf_result" + +# INSTALL AGAIN +- name: install sos again + dnf: + name: sos + state: present + register: dnf_result + +- name: verify no change on second install + assert: + that: + - "not dnf_result.changed" + +# Multiple packages +- name: uninstall sos and sharutils + dnf: name=sos,sharutils state=removed + register: dnf_result + +- name: check sos with rpm + shell: rpm -q sos + failed_when: False + register: rpm_sos_result + +- name: check sharutils with rpm + shell: rpm -q sharutils + failed_when: False + register: rpm_sharutils_result + +- name: verify packages installed + assert: + that: + - "rpm_sos_result.rc != 0" + - "rpm_sharutils_result.rc != 0" + +- name: install sos and sharutils as comma separated + dnf: name=sos,sharutils state=present + register: dnf_result + +- name: check sos with rpm + shell: rpm -q sos + failed_when: False + register: rpm_sos_result + +- name: check sharutils with rpm + shell: rpm -q sharutils + failed_when: False + register: rpm_sharutils_result + +- name: verify packages installed + assert: + that: + - "not dnf_result.failed | default(False)" + - "dnf_result.changed" + - "rpm_sos_result.rc == 0" + - "rpm_sharutils_result.rc == 0" + +- name: uninstall sos and sharutils + dnf: name=sos,sharutils state=removed + register: dnf_result + +- name: install sos and sharutils as list + dnf: + name: + - sos + - sharutils + state: present + register: dnf_result + +- name: check sos with rpm + shell: rpm -q sos + failed_when: False + register: rpm_sos_result + +- name: check sharutils with rpm + shell: rpm -q sharutils + failed_when: False + register: rpm_sharutils_result + +- name: verify packages installed + assert: + that: + - "not dnf_result.failed | default(False)" + - "dnf_result.changed" + - "rpm_sos_result.rc == 0" + - "rpm_sharutils_result.rc == 0" + +- name: uninstall sos and sharutils + dnf: + name: "sos,sharutils" + state: removed + register: dnf_result + +- name: install sos and sharutils as comma separated with spaces + dnf: + name: "sos, sharutils" + state: present + register: dnf_result + +- name: check sos with rpm + shell: rpm -q sos + failed_when: False + register: rpm_sos_result + +- name: check sos with rpm + shell: rpm -q sharutils + failed_when: False + register: rpm_sharutils_result + +- name: verify packages installed + assert: + that: + - "not dnf_result.failed | default(False)" + - "dnf_result.changed" + - "rpm_sos_result.rc == 0" + - "rpm_sharutils_result.rc == 0" + +- name: uninstall sos and sharutils + dnf: + name: + - sos + - sharutils + state: removed + +- name: install non-existent rpm + dnf: + name: "{{ item }}" + with_items: + - does-not-exist + register: non_existent_rpm + ignore_errors: True + +- name: check non-existent rpm install failed + assert: + that: + - non_existent_rpm|failed diff --git a/test/integration/targets/dnf/tasks/main.yml b/test/integration/targets/dnf/tasks/main.yml new file mode 100644 index 0000000000..dd97a03d12 --- /dev/null +++ b/test/integration/targets/dnf/tasks/main.yml @@ -0,0 +1,23 @@ +# test code for the yum module +# (c) 2014, James Tanner <tanner.jc@gmail.com> + +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Note: We install the yum package onto Fedora so that this will work on dnf systems +# We want to test that for people who don't want to upgrade their systems. +- include: 'dnf.yml' + when: (ansible_distribution in ['RedHat', 'CentOS', 'ScientificLinux'] and False) or (ansible_distribution in ['Fedora'] and ansible_distribution_major_version >= 23) + |