ansible/test/integration/targets/dnf/tasks/repo.yml
Sam Doran 47796af64f
Change dummy package name in yum/dnf tests to not collide with an actual package (#60225)
When targeting 'foo*' in tests, it pulled in packages other than the dummy packages in our testing repo that have many dependencies, some of which were causing tests to fail.

Also change 'bar' package name to avoid the same issue in the future.
2019-08-07 14:26:55 -04:00

286 lines
8.3 KiB
YAML

- block:
- name: Install dinginessentail-1.0-1
dnf:
name: dinginessentail-1.0-1
state: present
register: dnf_result
- name: Check dinginessentail with rpm
shell: rpm -q dinginessentail
register: rpm_result
- name: Verify installation
assert:
that:
- "dnf_result.changed"
- "rpm_result.stdout.startswith('dinginessentail-1.0-1')"
- name: Verify dnf module outputs
assert:
that:
- "'results' in dnf_result"
# ============================================================================
- name: Install dinginessentail-1.0-1 again
dnf:
name: dinginessentail-1.0-1
state: present
register: dnf_result
- name: Check dinginessentail with rpm
shell: rpm -q dinginessentail
register: rpm_result
- name: Verify installation
assert:
that:
- "not dnf_result.changed"
- "rpm_result.stdout.startswith('dinginessentail-1.0-1')"
- name: Verify dnf module outputs
assert:
that:
- "'msg' in dnf_result"
# ============================================================================
- name: Install dinginessentail-1:1.0-2
dnf:
name: "dinginessentail-1:1.0-2.{{ ansible_architecture }}"
state: present
register: dnf_result
- name: Check dinginessentail with rpm
shell: rpm -q dinginessentail
register: rpm_result
- name: Verify installation
assert:
that:
- "dnf_result.changed"
- "rpm_result.stdout.startswith('dinginessentail-1.0-2')"
- name: Verify dnf module outputs
assert:
that:
- "'results' in dnf_result"
# ============================================================================
- name: Update to the latest dinginessentail
dnf:
name: dinginessentail
state: latest
register: dnf_result
- name: Check dinginessentail with rpm
shell: rpm -q dinginessentail
register: rpm_result
- name: Verify installation
assert:
that:
- "dnf_result.changed"
- "rpm_result.stdout.startswith('dinginessentail-1.1-1')"
- name: Verify dnf module outputs
assert:
that:
- "'results' in dnf_result"
# ============================================================================
- name: Install dinginessentail-1.0-1 from a file (downgrade)
dnf:
name: "{{ repodir }}/dinginessentail-1.0-1.{{ ansible_architecture }}.rpm"
state: present
allow_downgrade: True
register: dnf_result
- name: Check dinginessentail with rpm
shell: rpm -q dinginessentail
register: rpm_result
- name: Verify installation
assert:
that:
- "dnf_result.changed"
- "rpm_result.stdout.startswith('dinginessentail-1.0-1')"
- name: Verify dnf module outputs
assert:
that:
- "'results' in dnf_result"
- name: Remove dinginessentail
dnf:
name: dinginessentail
state: absent
# ============================================================================
- name: Install dinginessentail-1.0-1 from a file
dnf:
name: "{{ repodir }}/dinginessentail-1.0-1.{{ ansible_architecture }}.rpm"
state: present
register: dnf_result
- name: Check dinginessentail with rpm
shell: rpm -q dinginessentail
register: rpm_result
- name: Verify installation
assert:
that:
- "dnf_result.changed"
- "rpm_result.stdout.startswith('dinginessentail-1.0-1')"
- name: Verify dnf module outputs
assert:
that:
- "'results' in dnf_result"
# ============================================================================
- name: Install dinginessentail-1.0-1 from a file again
dnf:
name: "{{ repodir }}/dinginessentail-1.0-1.{{ ansible_architecture }}.rpm"
state: present
register: dnf_result
- name: Check dinginessentail with rpm
shell: rpm -q dinginessentail
register: rpm_result
- name: Verify installation
assert:
that:
- "not dnf_result.changed"
- "rpm_result.stdout.startswith('dinginessentail-1.0-1')"
# ============================================================================
- name: Install dinginessentail-1.0-2 from a file
dnf:
name: "{{ repodir }}/dinginessentail-1.0-2.{{ ansible_architecture }}.rpm"
state: present
register: dnf_result
- name: Check dinginessentail with rpm
shell: rpm -q dinginessentail
register: rpm_result
- name: Verify installation
assert:
that:
- "dnf_result.changed"
- "rpm_result.stdout.startswith('dinginessentail-1.0-2')"
- name: Verify dnf module outputs
assert:
that:
- "'results' in dnf_result"
# ============================================================================
- name: Install dinginessentail-1.0-2 from a file again
dnf:
name: "{{ repodir }}/dinginessentail-1.0-2.{{ ansible_architecture }}.rpm"
state: present
register: dnf_result
- name: Check dinginessentail with rpm
shell: rpm -q dinginessentail
register: rpm_result
- name: Verify installation
assert:
that:
- "not dnf_result.changed"
- "rpm_result.stdout.startswith('dinginessentail-1.0-2')"
# ============================================================================
- name: Remove dinginessentail
dnf:
name: dinginessentail
state: absent
- name: Try to install incompatible arch
dnf:
name: "{{ repodir_ppc64 }}/dinginessentail-1.0-1.ppc64.rpm"
state: present
register: dnf_result
ignore_errors: yes
- name: Check dinginessentail with rpm
shell: rpm -q dinginessentail
register: rpm_result
ignore_errors: yes
- name: Verify installation
assert:
that:
- "rpm_result.rc == 1"
- "not dnf_result.changed"
- "dnf_result is failed"
# ============================================================================
# Should install dinginessentail-with-weak-dep and dinginessentail-weak-dep
- name: Install package with defaults
dnf:
name: dinginessentail-with-weak-dep
state: present
- name: Check if dinginessentail-with-weak-dep is installed
shell: rpm -q dinginessentail-with-weak-dep
register: rpm_main_result
- name: Check if dinginessentail-weak-dep is installed
shell: rpm -q dinginessentail-weak-dep
register: rpm_weak_result
- name: Verify install with weak deps
assert:
that:
- rpm_main_result.rc == 0
- rpm_weak_result.rc == 0
- name: Uninstall dinginessentail weak dep packages
dnf:
name:
- dinginessentail-with-weak-dep
- dinginessentail-weak-dep
state: absent
- name: Install package with weak deps but skip weak deps
dnf:
name: dinginessentail-with-weak-dep
install_weak_deps: False
state: present
- name: Check if dinginessentail-with-weak-dep is installed
shell: rpm -q dinginessentail-with-weak-dep
register: rpm_main_result
- name: Check if dinginessentail-weak-dep is installed
shell: rpm -q dinginessentail-weak-dep
register: rpm_weak_result
ignore_errors: yes
- name: Verify install without weak deps
assert:
that:
- rpm_main_result.rc == 0
- rpm_weak_result.rc == 1 # the weak dependency shouldn't be installed
# https://github.com/ansible/ansible/issues/55938
- name: Install dinginessentail-*
dnf:
name: dinginessentail-*
state: present
- name: Uninstall dinginessentail-*
dnf:
name: dinginessentail-*
state: absent
- name: Check if all dinginessentail packages are removed
shell: rpm -qa dinginessentail-* | wc -l
register: rpm_result
- name: Verify rpm result
assert:
that:
- rpm_result.stdout == '0'
always:
- name: Clean up
dnf:
name:
- dinginessentail
- dinginessentail-with-weak-dep
- dinginessentail-weak-dep
state: absent