Bugfix: Fix parsing array values from osx_defaults (#358)
* Bugfix: Fix parsing array values in osx_defaults Unquote values and unescape double quotes when reading array values from defaults. * Fix fragments: fix_parsing_array_values_in_osx_defaults Co-authored-by: Felix Fontein <felix@fontein.de> * add test code for Bugfix: Fix parsing array values from osx_defaults * handle spaces after the comma Co-authored-by: Felix Fontein <felix@fontein.de>pull/1469/head
parent
e1bf23d27d
commit
1110e93c5d
|
@ -0,0 +1,2 @@
|
||||||
|
bugfixes:
|
||||||
|
- osx_defaults - unquote values and unescape double quotes when reading array values (https://github.com/ansible-collections/community.general/pull/358).
|
|
@ -237,8 +237,8 @@ class OSXDefaults(object):
|
||||||
value.pop(0)
|
value.pop(0)
|
||||||
value.pop(-1)
|
value.pop(-1)
|
||||||
|
|
||||||
# Remove extra spaces and comma (,) at the end of values
|
# Remove spaces at beginning and comma (,) at the end, unquote and unescape double quotes
|
||||||
value = [re.sub(',$', '', x.strip(' ')) for x in value]
|
value = [re.sub('^ *"?|"?,? *$', '', x.replace('\\"', '"')) for x in value]
|
||||||
|
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
|
|
@ -208,3 +208,46 @@
|
||||||
- assert:
|
- assert:
|
||||||
that: "{{ item.changed }}"
|
that: "{{ item.changed }}"
|
||||||
with_items: "{{ test_data_types.results }}"
|
with_items: "{{ test_data_types.results }}"
|
||||||
|
|
||||||
|
|
||||||
|
- name: Ensure test key does not exist
|
||||||
|
osx_defaults:
|
||||||
|
domain: com.ansible.fake_array_value
|
||||||
|
key: ExampleArrayKey
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
- name: add array value for the first time
|
||||||
|
osx_defaults:
|
||||||
|
domain: com.ansible.fake_array_value
|
||||||
|
key: ExampleArrayKey
|
||||||
|
value:
|
||||||
|
- 'Value with spaces'
|
||||||
|
type: array
|
||||||
|
array_add: yes
|
||||||
|
register: test_array_add
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that: test_array_add.changed
|
||||||
|
|
||||||
|
- name: add for the second time, should be skipped
|
||||||
|
osx_defaults:
|
||||||
|
domain: com.ansible.fake_array_value
|
||||||
|
key: ExampleArrayKey
|
||||||
|
value:
|
||||||
|
- 'Value with spaces'
|
||||||
|
type: array
|
||||||
|
array_add: yes
|
||||||
|
register: test_array_add
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that: not test_array_add.changed
|
||||||
|
|
||||||
|
- name: Clean up test key
|
||||||
|
osx_defaults:
|
||||||
|
domain: com.ansible.fake_array_value
|
||||||
|
key: ExampleArrayKey
|
||||||
|
state: absent
|
||||||
|
register: test_array_add
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that: test_array_add.changed
|
||||||
|
|
Loading…
Reference in New Issue