diff options
Diffstat (limited to 'test/integration/roles')
-rw-r--r-- | test/integration/roles/test_dnf/meta/main.yml | 2 | ||||
-rw-r--r-- | test/integration/roles/test_dnf/tasks/dnf.yml | 203 | ||||
-rw-r--r-- | test/integration/roles/test_dnf/tasks/main.yml | 23 |
3 files changed, 228 insertions, 0 deletions
diff --git a/test/integration/roles/test_dnf/meta/main.yml b/test/integration/roles/test_dnf/meta/main.yml new file mode 100644 index 0000000000..07faa21776 --- /dev/null +++ b/test/integration/roles/test_dnf/meta/main.yml @@ -0,0 +1,2 @@ +dependencies: + - prepare_tests diff --git a/test/integration/roles/test_dnf/tasks/dnf.yml b/test/integration/roles/test_dnf/tasks/dnf.yml new file mode 100644 index 0000000000..5a984426ce --- /dev/null +++ b/test/integration/roles/test_dnf/tasks/dnf.yml @@ -0,0 +1,203 @@ +# Ensure that python2-dnf is installed (This test is only like this in +# stable-2.2 because we have not backported the feature that ensures the python +# bindings are installed) +- name: + command: dnf install -y python2-dnf + +# 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/roles/test_dnf/tasks/main.yml b/test/integration/roles/test_dnf/tasks/main.yml new file mode 100644 index 0000000000..dd97a03d12 --- /dev/null +++ b/test/integration/roles/test_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) + |