diff options
author | Brian Coca <bcoca@users.noreply.github.com> | 2024-09-20 16:06:15 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-20 16:06:15 +0200 |
commit | 6efb30b43e89e56061311235b3ee97181039a1c9 (patch) | |
tree | b0299aaf93af54d72b74cd6222097d5e16b152cd /test/integration | |
parent | Add mount_facts module (#83508) (diff) | |
download | ansible-6efb30b43e89e56061311235b3ee97181039a1c9.tar.xz ansible-6efb30b43e89e56061311235b3ee97181039a1c9.zip |
Do not convert floats to ints when there is truncation (#83864)
Adjusted error messages
fixed tests
removed py2 compat tests, since no more py2
Co-authored-by: Matt Clay <matt@mystile.com>
Diffstat (limited to 'test/integration')
-rw-r--r-- | test/integration/targets/config/types.yml | 1 | ||||
-rw-r--r-- | test/integration/targets/roles_arg_spec/test.yml | 3 | ||||
-rw-r--r-- | test/integration/targets/roles_arg_spec/test_complex_role_fails.yml | 78 |
3 files changed, 1 insertions, 81 deletions
diff --git a/test/integration/targets/config/types.yml b/test/integration/targets/config/types.yml index fe7e6df37f..7e67710eec 100644 --- a/test/integration/targets/config/types.yml +++ b/test/integration/targets/config/types.yml @@ -12,7 +12,6 @@ notvalid: '{{ lookup("config", "notvalid", plugin_type="lookup", plugin_name="types") }}' totallynotvalid: '{{ lookup("config", "totallynotvalid", plugin_type="lookup", plugin_name="types") }}' str_mustunquote: '{{ lookup("config", "str_mustunquote", plugin_type="lookup", plugin_name="types") }}' - - assert: that: - 'valid|type_debug == "list"' diff --git a/test/integration/targets/roles_arg_spec/test.yml b/test/integration/targets/roles_arg_spec/test.yml index b88d2e183d..26beb21055 100644 --- a/test/integration/targets/roles_arg_spec/test.yml +++ b/test/integration/targets/roles_arg_spec/test.yml @@ -231,8 +231,7 @@ - ansible_failed_result.argument_spec_data == c_main_spec vars: error: >- - argument 'c_int' is of type <class 'NoneType'> and we were unable to convert to int: - <class 'NoneType'> cannot be converted to an int + argument 'c_int' is of type <class 'NoneType'> and we were unable to convert to int: "None" cannot be converted to an int - name: test type coercion fails on None for required list block: diff --git a/test/integration/targets/roles_arg_spec/test_complex_role_fails.yml b/test/integration/targets/roles_arg_spec/test_complex_role_fails.yml index 81abdaa8c2..99db01d8f4 100644 --- a/test/integration/targets/roles_arg_spec/test_complex_role_fails.yml +++ b/test/integration/targets/roles_arg_spec/test_complex_role_fails.yml @@ -91,84 +91,6 @@ - debug: var: ansible_failed_result - - name: replace py version specific types with generic names so tests work on py2 and py3 - set_fact: - # We want to compare if the actual failure messages and the expected failure messages - # are the same. But to compare and do set differences, we have to handle some - # differences between py2/py3. - # The validation failure messages include python type and class reprs, which are - # different between py2 and py3. For ex, "<type 'str'>" vs "<class 'str'>". Plus - # the usual py2/py3 unicode/str/bytes type shenanigans. The 'THE_FLOAT_REPR' is - # because py3 quotes the value in the error while py2 does not, so we just ignore - # the rest of the line. - actual_generic: "{{ ansible_failed_result.argument_errors| - map('replace', ansible_unicode_type_match, 'STR')| - map('replace', unicode_type_match, 'STR')| - map('replace', string_type_match, 'STR')| - map('replace', float_type_match, 'FLOAT')| - map('replace', list_type_match, 'LIST')| - map('replace', ansible_list_type_match, 'LIST')| - map('replace', dict_type_match, 'DICT')| - map('replace', ansible_dict_type_match, 'DICT')| - map('replace', ansible_unicode_class_match, 'STR')| - map('replace', unicode_class_match, 'STR')| - map('replace', string_class_match, 'STR')| - map('replace', bytes_class_match, 'STR')| - map('replace', float_class_match, 'FLOAT')| - map('replace', list_class_match, 'LIST')| - map('replace', ansible_list_class_match, 'LIST')| - map('replace', dict_class_match, 'DICT')| - map('replace', ansible_dict_class_match, 'DICT')| - map('regex_replace', '''float:.*$''', 'THE_FLOAT_REPR')| - map('regex_replace', 'Valid booleans include.*$', '')| - list }}" - expected_generic: "{{ expected.test1_1.argument_errors| - map('replace', ansible_unicode_type_match, 'STR')| - map('replace', unicode_type_match, 'STR')| - map('replace', string_type_match, 'STR')| - map('replace', float_type_match, 'FLOAT')| - map('replace', list_type_match, 'LIST')| - map('replace', ansible_list_type_match, 'LIST')| - map('replace', dict_type_match, 'DICT')| - map('replace', ansible_dict_type_match, 'DICT')| - map('replace', ansible_unicode_class_match, 'STR')| - map('replace', unicode_class_match, 'STR')| - map('replace', string_class_match, 'STR')| - map('replace', bytes_class_match, 'STR')| - map('replace', float_class_match, 'FLOAT')| - map('replace', list_class_match, 'LIST')| - map('replace', ansible_list_class_match, 'LIST')| - map('replace', dict_class_match, 'DICT')| - map('replace', ansible_dict_class_match, 'DICT')| - map('regex_replace', '''float:.*$''', 'THE_FLOAT_REPR')| - map('regex_replace', 'Valid booleans include.*$', '')| - list }}" - - - name: figure out the difference between expected and actual validate_argument_spec failures - set_fact: - actual_not_in_expected: "{{ actual_generic| difference(expected_generic) | sort() }}" - expected_not_in_actual: "{{ expected_generic | difference(actual_generic) | sort() }}" - - - name: assert that all actual validate_argument_spec failures were in expected - assert: - that: - - actual_not_in_expected | length == 0 - msg: "Actual validate_argument_spec failures that were not expected: {{ actual_not_in_expected }}" - - - name: assert that all expected validate_argument_spec failures were in expected - assert: - that: - - expected_not_in_actual | length == 0 - msg: "Expected validate_argument_spec failures that were not in actual results: {{ expected_not_in_actual }}" - - - name: assert that `validate_args_context` return value has what we expect - assert: - that: - - ansible_failed_result.validate_args_context.argument_spec_name == "main" - - ansible_failed_result.validate_args_context.name == "test1" - - ansible_failed_result.validate_args_context.type == "role" - - "ansible_failed_result.validate_args_context.path is search('roles_arg_spec/roles/test1')" - - name: test message for missing required parameters and invalid suboptions block: - include_role: |