ansible/test/integration/targets/test_core/tasks/main.yml
Rick Elrod 6894ae7d1d
Rename to ansible-core (#72594)
Change:
- Initial set of changes for renaming to ansible-core
- Includes changelog fragment changes from base -> core
- Does NOT include docs changes
- Modifies detection stuff in setup.py to support ansible<2.9 and ansible-base

Test Plan:
- ci_complete
2020-11-13 15:42:10 -06:00

326 lines
8.4 KiB
YAML

- name: Failure
set_fact:
hello: world
failed_when: true
ignore_errors: yes
register: intentional_failure
- name: Success
set_fact:
hello: world
register: intentional_success
- name: Try failure test on non-dictionary
set_fact:
hello: "{{ 'nope' is failure }}"
ignore_errors: yes
register: misuse_of_failure
- name: Assert failure tests work
assert:
that:
- intentional_failure is failed # old name
- intentional_failure is failure
- intentional_success is not failure
- misuse_of_failure is failed
- name: Assert successful tests work
assert:
that:
- intentional_success is succeeded # old name
- intentional_success is success # old name
- intentional_success is successful
- intentional_failure is not successful
- name: Try reachable host
command: id
register: reachable_host
- name: Try unreachable host
command: id
delegate_to: unreachable
ignore_unreachable: yes
ignore_errors: yes
register: unreachable_host
- name: Try reachable test on non-dictionary
set_fact:
hello: "{{ 'nope' is reachable }}"
ignore_errors: yes
register: misuse_of_reachable
- name: Assert reachable tests work
assert:
that:
- misuse_of_reachable is failed
- reachable_host is reachable
- unreachable_host is not reachable
- name: Try unreachable test on non-dictionary
set_fact:
hello: "{{ 'nope' is unreachable }}"
ignore_errors: yes
register: misuse_of_unreachable
- name: Assert unreachable tests work
assert:
that:
- misuse_of_unreachable is failed
- reachable_host is not unreachable
- unreachable_host is unreachable
- name: Make changes
file:
path: dir_for_changed
state: directory
register: directory_created
- name: Make no changes
file:
path: dir_for_changed
state: directory
register: directory_unchanged
- name: Try changed test on non-dictionary
set_fact:
hello: "{{ 'nope' is changed }}"
ignore_errors: yes
register: misuse_of_changed
# providing artificial task results since there are no modules in ansible-core that provide a 'results' list instead of 'changed'
- name: Prepare artificial task results
set_fact:
results_all_changed:
results:
- changed: true
- changed: true
results_some_changed:
results:
- changed: true
- changed: false
results_none_changed:
results:
- changed: false
- changed: false
results_missing_changed: {}
- name: Assert changed tests work
assert:
that:
- directory_created is changed
- directory_unchanged is not changed
- misuse_of_changed is failed
- results_all_changed is changed
- results_some_changed is changed
- results_none_changed is not changed
- results_missing_changed is not changed
- name: Skip me
set_fact:
hello: world
when: false
register: skipped_task
- name: Don't skip me
set_fact:
hello: world
register: executed_task
- name: Try skipped test on non-dictionary
set_fact:
hello: "{{ 'nope' is skipped }}"
ignore_errors: yes
register: misuse_of_skipped
- name: Assert skipped tests work
assert:
that:
- skipped_task is skipped
- executed_task is not skipped
- misuse_of_skipped is failure
- name: Not an async task
set_fact:
hello: world
register: non_async_task
- name: Complete an async task
command: id
async: 10
poll: 1
register: async_completed
- name: Start an async task without waiting for completion
shell: sleep 3
async: 10
poll: 0
register: async_incomplete
- name: Try finished test on non-dictionary
set_fact:
hello: "{{ 'nope' is finished }}"
ignore_errors: yes
register: misuse_of_finished
- name: Assert finished tests work (warning expected)
assert:
that:
- non_async_task is finished
- misuse_of_finished is failed
- async_completed is finished
- async_incomplete is not finished
- name: Try started test on non-dictionary
set_fact:
hello: "{{ 'nope' is started }}"
ignore_errors: yes
register: misuse_of_started
- name: Assert started tests work (warning expected)
assert:
that:
- non_async_task is started
- misuse_of_started is failed
- async_completed is started
- async_incomplete is started
- name: Assert match tests work
assert:
that:
- "'hello' is match('h.ll.')"
- "'hello' is not match('.ll.')"
- name: Assert search tests work
assert:
that:
- "'hello' is search('.l')"
- "'hello' is not search('nope')"
- name: Assert regex tests work
assert:
that:
- "'hello' is regex('.l')"
- "'hello' is regex('.L', ignorecase=true)"
- "'hello\nAnsible' is regex('^Ansible', multiline=true)"
- "'hello' is not regex('.L')"
- "'hello\nAnsible' is not regex('^Ansible')"
- name: Try version tests with bad operator
set_fact:
result: "{{ '1.0' is version('1.0', 'equals') }}"
ignore_errors: yes
register: version_bad_operator
- name: Try version tests with bad value
set_fact:
result: "{{ '1.0' is version('nope', '==', true) }}"
ignore_errors: yes
register: version_bad_value
- name: Try version with both strict and version_type
debug:
msg: "{{ '1.0' is version('1.0', strict=False, version_type='loose') }}"
ignore_errors: yes
register: version_strict_version_type
- name: Try version with bad version_type
debug:
msg: "{{ '1.0' is version('1.0', version_type='boom') }}"
ignore_errors: yes
register: version_bad_version_type
- name: Try version with bad semver
debug:
msg: "{{ 'nope' is version('nopenope', version_type='semver') }}"
ignore_errors: yes
register: version_bad_semver
- name: Assert version tests work
assert:
that:
- "'1.0' is version_compare('1.0', '==')" # old name
- "'1.0' is version('1.0', '==')"
- "'1.0' is version('2.0', '!=')"
- "'1.0' is version('2.0', '<')"
- "'2.0' is version('1.0', '>')"
- "'1.0' is version('1.0', '<=')"
- "'1.0' is version('1.0', '>=')"
- "'1.0' is version_compare('1.0', '==', true)" # old name
- "'1.0' is version('1.0', '==', true)"
- "'1.0' is version('2.0', '!=', true)"
- "'1.0' is version('2.0', '<', true)"
- "'2.0' is version('1.0', '>', true)"
- "'1.0' is version('1.0', '<=', true)"
- "'1.0' is version('1.0', '>=', true)"
- "'1.2.3' is version('2.0.0', 'lt', version_type='semver')"
- version_bad_operator is failed
- version_bad_value is failed
- version_strict_version_type is failed
- version_bad_version_type is failed
- version_bad_semver is failed
- name: Assert any tests work
assert:
that:
- "[true, false] is any"
- "[false] is not any"
- name: Assert all tests work
assert:
that:
- "[true] is all"
- "[true, false] is not all"
- name: Assert truthy tests work
assert:
that:
- '"string" is truthy'
- '"" is not truthy'
- True is truthy
- False is not truthy
- true is truthy
- false is not truthy
- 1 is truthy
- 0 is not truthy
- '[""] is truthy'
- '[] is not truthy'
- '"on" is truthy(convert_bool=True)'
- '"off" is not truthy(convert_bool=True)'
- '"fred" is truthy(convert_bool=True)'
- '{} is not truthy'
- '{"key": "value"} is truthy'
- name: Assert falsy tests work
assert:
that:
- '"string" is not falsy'
- '"" is falsy'
- True is not falsy
- False is falsy
- true is not falsy
- false is falsy
- 1 is not falsy
- 0 is falsy
- '[""] is not falsy'
- '[] is falsy'
- '"on" is not falsy(convert_bool=True)'
- '"off" is falsy(convert_bool=True)'
- '{} is falsy'
- '{"key": "value"} is not falsy'
- name: Create vaulted variable for vault_encrypted test
set_fact:
vaulted_value: !vault |
$ANSIBLE_VAULT;1.1;AES256
35323961353038346165643738646465376139363061353835303739663538343266303232326635
3365353662646236356665323135633630656238316530640a663362363763633436373439663031
33663433383037396438656464636433653837376361313638366362333037323961316364363363
3835616438623261650a636164376534376661393134326662326362323131373964313961623365
3833
- name: Assert vault_encrypted tests work
assert:
that:
- vaulted_value is vault_encrypted
- inventory_hostname is not vault_encrypted