win_scheduled_tasks: Improve example test framework (#22833)

Updated as discussed in previous Test Working Group.
This commit is contained in:
Dag Wieers 2017-03-24 03:42:12 +01:00 committed by Matt Davis
parent 866f67e213
commit ef36d7de68
2 changed files with 113 additions and 39 deletions

View file

@ -1,46 +1,21 @@
# NOTE: The win_scheduled_task module only works on Win2012+
- name: Test Windows capabilities
raw: Get-Command New-ScheduledTask -ErrorAction SilentlyContinue; $?
raw: Get-Command New-ScheduledTask -ErrorAction SilentlyContinue; return $?
failed_when: no
register: new_scheduledtask
- name: Set boolean for capability
set_fact:
has_new_scheduledtask: '{{ new_scheduledtask.rc == 0 }}'
- name: Test in normal mode
when: has_new_scheduledtask
- name: Only run tests when Windows is capable
when: new_scheduledtask.rc == 0
block:
- include: tests.yml
- name: Check the various tasks in normal mode
assert:
that:
- add_scheduled_task.changed == true
- add_scheduled_task.exists == false
- add_scheduled_task_again.changed == false
- add_scheduled_task_again.exists == true
- remove_scheduled_task.changed == true
- remove_scheduled_task.exists == true
- remove_scheduled_task_again.changed == false
- remove_scheduled_task_again.exists == false
- name: Test in normal mode
include: tests.yml
vars:
in_check_mode: no
- name: Test in check-mode
check_mode: yes
when: has_new_scheduledtask
block:
- include: tests.yml
- name: Check the various tests in check-mode
assert:
that:
- add_scheduled_task.changed == true
- add_scheduled_task.exists == false
- add_scheduled_task_again.changed == true
- add_scheduled_task_again.exists == false
- remove_scheduled_task.changed == false
- remove_scheduled_task.exists == false
- remove_scheduled_task_again.changed == false
- remove_scheduled_task_again.exists == false
- name: Test in check-mode
include: tests.yml
vars:
in_check_mode: yes
check_mode: yes

View file

@ -1,11 +1,12 @@
- name: Remove potentially leftover scheduled task
win_scheduled_task: &wst_absent
name: Test
name: Ansible Test
state: absent
- name: Add scheduled task
win_scheduled_task: &wst_present
name: Test
name: Ansible Test
executable: dir.exe
arguments: C:\Windows\Temp\
frequency: once
@ -13,14 +14,112 @@
user: SYSTEM
register: add_scheduled_task
- name: Test add_scheduled_task
assert:
that:
- add_scheduled_task.changed == true
- add_scheduled_task.exists == false
- name: Add scheduled task (again)
win_scheduled_task: *wst_present
register: add_scheduled_task_again
- name: Test add_scheduled_task_again (normal mode)
assert:
that:
- add_scheduled_task_again.changed == false
- add_scheduled_task_again.exists == true
when: not in_check_mode
- name: Test add_scheduled_task_again (check-mode)
assert:
that:
- add_scheduled_task_again.changed == true
- add_scheduled_task_again.exists == false
when: in_check_mode
# FIXME: The below tasks should not require all options
# See: https://github.com/ansible/ansible/issues/19279
- name: Run tests for normal mode only (expects scheduled task)
when: not in_check_mode
block:
- name: Disable scheduled task
win_scheduled_task:
<<: *wst_present
enabled: no
register: disable_scheduled_task
- name: Test disable_scheduled_task
assert:
that:
- disable_scheduled_task.changed == true
- disable_scheduled_task.exists == true
- name: Disable scheduled task (again)
win_scheduled_task:
<<: *wst_present
enabled: no
register: disable_scheduled_task_again
- name: Test disable_scheduled_task_again
assert:
that:
- disable_scheduled_task_again.changed == false
- disable_scheduled_task_again.exists == true
- name: Enable scheduled task
win_scheduled_task:
<<: *wst_present
enabled: yes
register: enable_scheduled_task
- assert:
that:
- enable_scheduled_task.changed == true
- enable_scheduled_task.exists == true
- name: Enable scheduled task (again)
win_scheduled_task:
<<: *wst_present
enabled: yes
register: enable_scheduled_task_again
- assert:
that:
- enable_scheduled_task_again.changed == false
- enable_scheduled_task_again.exists == true
- name: Remove scheduled task
win_scheduled_task: *wst_absent
register: remove_scheduled_task
- name: Test remove_scheduled_task (normal mode)
assert:
that:
- remove_scheduled_task.changed == true
- remove_scheduled_task.exists == true
when: not in_check_mode
- name: Test remove_scheduled_task (check-mode)
assert:
that:
- remove_scheduled_task.changed == false
- remove_scheduled_task.exists == false
when: in_check_mode
- name: Remove scheduled task (again)
win_scheduled_task: *wst_absent
register: remove_scheduled_task_again
- name: Test remove_scheduled_task_again
assert:
that:
- remove_scheduled_task_again.changed == false
- remove_scheduled_task_again.exists == false