summaryrefslogtreecommitdiff
path: root/test/integration/targets
diff options
context:
space:
mode:
authorToshio Kuratomi <a.badger@gmail.com>2016-10-31 10:38:31 -0700
committerGitHub <noreply@github.com>2016-10-31 10:38:31 -0700
commit02859a3e32bd7079b99c7d7f3f16c94edc42de9f (patch)
tree7ac65af80069c6a4603832993f2cc8993ec16b01 /test/integration/targets
parent6d9771bbf8217ad89090ccd7b2471664bf53b8b3 (diff)
downloadansible-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.yml2
-rw-r--r--test/integration/targets/dnf/tasks/dnf.yml212
-rw-r--r--test/integration/targets/dnf/tasks/main.yml23
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)
+