Adds argspec tests for required, required_one_of and required_by (#72245)
* Improve variable names. * Add test for required. * Add test for required_one_of. * Add test for required_by.
This commit is contained in:
parent
fe65144a4a
commit
1489bf9190
2 changed files with 167 additions and 4 deletions
|
@ -11,6 +11,14 @@ from ansible.module_utils.basic import AnsibleModule
|
|||
def main():
|
||||
module = AnsibleModule(
|
||||
{
|
||||
'required': {
|
||||
'required': True,
|
||||
},
|
||||
'required_one_of_one': {},
|
||||
'required_one_of_two': {},
|
||||
'required_by_one': {},
|
||||
'required_by_two': {},
|
||||
'required_by_three': {},
|
||||
'state': {
|
||||
'type': 'str',
|
||||
'choices': ['absent', 'present'],
|
||||
|
@ -20,6 +28,24 @@ def main():
|
|||
'mapping': {
|
||||
'type': 'dict',
|
||||
},
|
||||
'required_one_of': {
|
||||
'required_one_of': [['thing', 'other']],
|
||||
'type': 'list',
|
||||
'elements': 'dict',
|
||||
'options': {
|
||||
'thing': {},
|
||||
'other': {},
|
||||
},
|
||||
},
|
||||
'required_by': {
|
||||
'required_by': {'thing': 'other'},
|
||||
'type': 'list',
|
||||
'elements': 'dict',
|
||||
'options': {
|
||||
'thing': {},
|
||||
'other': {},
|
||||
},
|
||||
},
|
||||
'required_together': {
|
||||
'required_together': [['thing', 'other']],
|
||||
'type': 'list',
|
||||
|
@ -72,6 +98,12 @@ def main():
|
|||
mutually_exclusive=(
|
||||
('path', 'content'),
|
||||
),
|
||||
required_one_of=(
|
||||
('required_one_of_one', 'required_one_of_two'),
|
||||
),
|
||||
required_by={
|
||||
'required_by_one': ('required_by_two', 'required_by_three'),
|
||||
},
|
||||
required_together=(
|
||||
('required_together_one', 'required_together_two'),
|
||||
),
|
||||
|
|
|
@ -1,46 +1,99 @@
|
|||
- argspec:
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
|
||||
- argspec:
|
||||
required_one_of_one: value
|
||||
register: argspec_required_fail
|
||||
ignore_errors: true
|
||||
|
||||
- argspec:
|
||||
required: value
|
||||
required_one_of_two: value
|
||||
|
||||
- argspec:
|
||||
required: value
|
||||
register: argspec_required_one_of_fail
|
||||
ignore_errors: true
|
||||
|
||||
- argspec:
|
||||
required: value
|
||||
required_one_of_two: value
|
||||
required_by_one: value
|
||||
required_by_two: value
|
||||
required_by_three: value
|
||||
|
||||
- argspec:
|
||||
required: value
|
||||
required_one_of_two: value
|
||||
required_by_one: value
|
||||
required_by_two: value
|
||||
register: argspec_required_by_fail
|
||||
ignore_errors: true
|
||||
|
||||
- argspec:
|
||||
state: absent
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
|
||||
- argspec:
|
||||
state: present
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
register: argspec_required_if_fail
|
||||
ignore_errors: true
|
||||
|
||||
- argspec:
|
||||
state: present
|
||||
path: foo
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
|
||||
- argspec:
|
||||
state: present
|
||||
content: foo
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
|
||||
- argspec:
|
||||
state: present
|
||||
content: foo
|
||||
path: foo
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
register: argspec_mutually_exclusive_fail
|
||||
ignore_errors: true
|
||||
|
||||
- argspec:
|
||||
mapping:
|
||||
foo: bar
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
register: argspec_good_mapping
|
||||
|
||||
- argspec:
|
||||
mapping: foo=bar
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
register: argspec_good_mapping_kv
|
||||
|
||||
- argspec:
|
||||
mapping: !!str '{"foo": "bar"}'
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
register: argspec_good_mapping_json
|
||||
|
||||
- argspec:
|
||||
mapping: foo
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
register: argspec_bad_mapping_string
|
||||
ignore_errors: true
|
||||
|
||||
- argspec:
|
||||
mapping: 1
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
register: argspec_bad_mapping_int
|
||||
ignore_errors: true
|
||||
|
||||
|
@ -48,6 +101,8 @@
|
|||
mapping:
|
||||
- foo
|
||||
- bar
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
register: argspec_bad_mapping_list
|
||||
ignore_errors: true
|
||||
|
||||
|
@ -56,14 +111,20 @@
|
|||
- thing: foo
|
||||
other: bar
|
||||
another: baz
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
|
||||
- argspec:
|
||||
required_together:
|
||||
- another: baz
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
|
||||
- argspec:
|
||||
required_together:
|
||||
- thing: foo
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
register: argspec_required_together_fail
|
||||
ignore_errors: true
|
||||
|
||||
|
@ -71,33 +132,77 @@
|
|||
required_together:
|
||||
- thing: foo
|
||||
other: bar
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
|
||||
- argspec:
|
||||
required_if:
|
||||
- thing: bar
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
|
||||
- argspec:
|
||||
required_if:
|
||||
- thing: foo
|
||||
other: bar
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
|
||||
- argspec:
|
||||
required_if:
|
||||
- thing: foo
|
||||
register: argpsec_required_if_fail
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
register: argspec_required_if_fail_2
|
||||
ignore_errors: true
|
||||
|
||||
- argspec:
|
||||
required_one_of:
|
||||
- thing: foo
|
||||
other: bar
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
|
||||
- argspec:
|
||||
required_one_of:
|
||||
- {}
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
register: argspec_required_one_of_fail_2
|
||||
ignore_errors: true
|
||||
|
||||
- argspec:
|
||||
required_by:
|
||||
- thing: foo
|
||||
other: bar
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
|
||||
- argspec:
|
||||
required_by:
|
||||
- thing: foo
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
register: argspec_required_by_fail_2
|
||||
ignore_errors: true
|
||||
|
||||
- argspec:
|
||||
json: !!str '{"foo": "bar"}'
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
register: argspec_good_json_string
|
||||
|
||||
- argspec:
|
||||
json:
|
||||
foo: bar
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
register: argspec_good_json_dict
|
||||
|
||||
- argspec:
|
||||
json: 1
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
register: argspec_bad_json
|
||||
ignore_errors: true
|
||||
|
||||
|
@ -105,41 +210,63 @@
|
|||
fail_on_missing_params:
|
||||
- needed_param
|
||||
needed_param: whatever
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
|
||||
- argspec:
|
||||
fail_on_missing_params:
|
||||
- needed_param
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
register: argspec_fail_on_missing_params_bad
|
||||
ignore_errors: true
|
||||
|
||||
- argspec:
|
||||
required_together_one: foo
|
||||
required_together_two: bar
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
|
||||
- argspec:
|
||||
required_together_one: foo
|
||||
register: argspec_fail_required_together
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
register: argspec_fail_required_together_2
|
||||
ignore_errors: true
|
||||
|
||||
- argspec:
|
||||
suboptions_list_no_elements:
|
||||
- thing: foo
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
register: argspec_suboptions_list_no_elements
|
||||
|
||||
- argspec:
|
||||
choices_with_strings_like_bools: on
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
register: argspec_choices_with_strings_like_bools_true
|
||||
|
||||
- argspec:
|
||||
choices_with_strings_like_bools: 'on'
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
register: argspec_choices_with_strings_like_bools_true_bool
|
||||
|
||||
- argspec:
|
||||
choices_with_strings_like_bools: off
|
||||
required: value
|
||||
required_one_of_one: value
|
||||
register: argspec_choices_with_strings_like_bools_false
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- argspec_required_fail is failed
|
||||
|
||||
- argspec_required_one_of_fail is failed
|
||||
|
||||
- argspec_required_by_fail is failed
|
||||
|
||||
- argspec_required_if_fail is failed
|
||||
|
||||
- argspec_mutually_exclusive_fail is failed
|
||||
|
@ -159,7 +286,11 @@
|
|||
|
||||
- argspec_required_together_fail is failed
|
||||
|
||||
- argpsec_required_if_fail is failed
|
||||
- argspec_required_if_fail_2 is failed
|
||||
|
||||
- argspec_required_one_of_fail_2 is failed
|
||||
|
||||
- argspec_required_by_fail_2 is failed
|
||||
|
||||
- argspec_good_json_string is successful
|
||||
- >-
|
||||
|
@ -171,7 +302,7 @@
|
|||
|
||||
- argspec_fail_on_missing_params_bad is failed
|
||||
|
||||
- argspec_fail_required_together is failed
|
||||
- argspec_fail_required_together_2 is failed
|
||||
|
||||
- >-
|
||||
argspec_suboptions_list_no_elements.suboptions_list_no_elements.0 == {'thing': 'foo'}
|
||||
|
|
Loading…
Reference in a new issue