Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable at, patch and synchronize tests #5

Merged
merged 4 commits into from
Mar 20, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion tests/integration/targets/at/aliases
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
shippable/posix/group1
destructive
disabled # fixme package
31 changes: 17 additions & 14 deletions tests/integration/targets/at/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,34 +16,37 @@
# You should have received a copy of the GNU General Public License
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.

- debug:
msg: >-
Skipping {{ ansible_distribution }} as ansible-base does not contain
the packaging module ({{ ansible_pkg_mgr }}) for this operating system
when: ansible_pkg_mgr not in ['apt', 'dnf', 'yum'] or ansible_distribution in ['AIX']

- name: stop executing on hosts that we don't have package manager modules for
meta: end_host
when: ansible_pkg_mgr not in ['apt', 'dnf', 'yum'] or ansible_distribution in ['AIX']

- set_fact: output_dir_test={{output_dir}}/at

- name: make sure our testing sub-directory does not exist
file: path="{{ output_dir_test }}" state=absent
file:
path: "{{ output_dir_test }}"
state: absent

- name: create our testing sub-directory
file: path="{{ output_dir_test }}" state=directory
file:
path: "{{ output_dir_test }}"
state: directory

##
## at
##

- name: define distros to attempt installing at on
set_fact:
package_distros:
- RedHat
- CentOS
- ScientificLinux
- Fedora
- Ubuntu
- Debian
- openSUSE Leap

- name: ensure at is installed
package:
name: at
state: present
when: ansible_distribution in package_distros
when: ansible_pkg_mgr in ['apt', 'dnf', 'yum']

- name: run the first example
at:
Expand Down
1 change: 0 additions & 1 deletion tests/integration/targets/patch/aliases
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
destructive
shippable/posix/group1
skip/aix
disabled # fixme package
29 changes: 28 additions & 1 deletion tests/integration/targets/patch/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -1,86 +1,113 @@
- debug:
msg: >-
Skipping {{ ansible_distribution }} as ansible-base does not contain
the packaging module ({{ ansible_pkg_mgr }}) for this operating system
when: ansible_pkg_mgr not in ['apt', 'dnf', 'yum']

- name: stop executing on hosts that we don't have package manager modules for
meta: end_host
when: ansible_pkg_mgr not in ['apt', 'dnf', 'yum']

- name: ensure idempotency installed
package:
name: patch
when: ansible_distribution != "MacOSX"
when: ansible_pkg_mgr in ['apt', 'dnf', 'yum']

- name: create a directory for the result
file:
dest: '{{ output_dir }}/patch'
state: directory
register: result

- name: assert the directory was created
assert:
that:
- result.state == 'directory'

- name: copy the origin file
copy:
src: ./origin.txt
dest: '{{ output_dir }}/patch/workfile.txt'
register: result

- name: patch the origin file in check mode
check_mode: true
register: result
patch:
src: result.patch
dest: '{{ output_dir }}/patch/workfile.txt'

- name: verify patch the origin file in check mode
assert:
that:
- result is changed

- name: patch the origin file
register: result
patch:
src: result.patch
dest: '{{ output_dir }}/patch/workfile.txt'

- name: verify patch the origin file
assert:
that:
- result is changed

- name: test patch the origin file idempotency
register: result
patch:
src: result.patch
dest: '{{ output_dir }}/patch/workfile.txt'

- name: verify test patch the origin file idempotency
assert:
that:
- result is not changed

- name: verify the resulted file matches expectations
copy:
src: ./result.txt
dest: '{{ output_dir }}/patch/workfile.txt'
register: result
failed_when: result is changed

- name: patch the workfile file in check mode state absent
check_mode: true
register: result
patch:
src: result.patch
dest: '{{ output_dir }}/patch/workfile.txt'
state: absent

- name: verify patch the workfile file in check mode state absent
assert:
that:
- result is changed

- name: patch the workfile file state absent
register: result
patch:
src: result.patch
dest: '{{ output_dir }}/patch/workfile.txt'
state: absent

- name: verify patch the workfile file state absent
assert:
that:
- result is changed

- name: patch the workfile file state absent idempotency
register: result
patch:
src: result.patch
dest: '{{ output_dir }}/patch/workfile.txt'
state: absent

- name: verify patch the workfile file state absent idempotency
assert:
that:
- result is not changed

- name: verify the resulted file matches expectations
copy:
src: ./origin.txt
Expand Down
1 change: 0 additions & 1 deletion tests/integration/targets/synchronize/aliases
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
shippable/posix/group1
disabled # fixme package
13 changes: 12 additions & 1 deletion tests/integration/targets/synchronize/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,18 @@
- debug:
msg: >-
Skipping {{ ansible_distribution }} as ansible-base does not contain
the packaging module ({{ ansible_pkg_mgr }}) for this operating system
when: ansible_pkg_mgr not in ['apt', 'dnf', 'yum']

- name: stop executing on hosts that we don't have package manager modules for
meta: end_host
when: ansible_pkg_mgr not in ['apt', 'dnf', 'yum']

- name: install rsync
package:
name: rsync
when: ansible_distribution != "MacOSX"
when: ansible_pkg_mgr in ['apt', 'dnf', 'yum']

- name: cleanup old files
shell: rm -rf {{output_dir}}/*
- name: create test new files
Expand Down