summaryrefslogtreecommitdiff
path: root/test/integration/roles
diff options
context:
space:
mode:
Diffstat (limited to 'test/integration/roles')
-rw-r--r--test/integration/roles/test_dnf/meta/main.yml2
-rw-r--r--test/integration/roles/test_dnf/tasks/dnf.yml203
-rw-r--r--test/integration/roles/test_dnf/tasks/main.yml23
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)
+