summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorToshio Kuratomi <a.badger@gmail.com>2016-10-31 10:38:31 -0700
committerToshio Kuratomi <a.badger@gmail.com>2016-10-31 10:57:11 -0700
commitd559355b2924177548d2d2a315e910137553b901 (patch)
tree6427a6215505e2777a4a3e6c8ddff63b3d7c3336 /test
parent219a20277fbf2c1b92f9068bdade6caddcf3f612 (diff)
downloadansible-d559355b2924177548d2d2a315e910137553b901.tar.gz
Add tests for dnf modelled after the yum tests (#18226)
(cherry picked from commit 02859a3e32bd7079b99c7d7f3f16c94edc42de9f)
Diffstat (limited to 'test')
-rw-r--r--test/integration/destructive.yml1
-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
4 files changed, 229 insertions, 0 deletions
diff --git a/test/integration/destructive.yml b/test/integration/destructive.yml
index 5dbdc649bd..9c3e7e9a99 100644
--- a/test/integration/destructive.yml
+++ b/test/integration/destructive.yml
@@ -9,6 +9,7 @@
- { role: test_pip, tags: test_pip, when: ansible_fips != True }
- { role: test_gem, tags: test_gem }
- { role: test_yum, tags: test_yum, when: ansible_python.version.major == '2' }
+ - { role: test_dnf, tags: test_dnf }
- { role: test_apt, tags: test_apt }
- { role: test_apt_repository, tags: [test_apt_repository, test_apt_key] }
- { role: test_postgresql, tags: [test_postgresql, test_postgresql_db, test_postgresql_privs, test_postgresql_user, needs_privileged] }
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)
+