Skip to content

Commit

Permalink
Enable at, patch and synchronize tests (#5)
Browse files Browse the repository at this point in the history
* Enable at, patch and synchronize tests

* Remove commented out tasks

* Skip currently unsupported platforms

* Skip AIX on at
  • Loading branch information
sivel authored Mar 20, 2020
1 parent ce9ec16 commit 27482c2
Show file tree
Hide file tree
Showing 6 changed files with 57 additions and 19 deletions.
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

0 comments on commit 27482c2

Please sign in to comment.