mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
fix: Ensuring interpolation is disabled for ConfigParser (#8185)
* fix: Ensuring interpolation is disabled for ConfigParser This PR disables interpolation of ConfigParser and adds test coverage for that. * Adding changelog fragment * Fixing missing extension of changelog fragment * Adding issue link to changelog fragment * Update changelogs/fragments/8183-from_ini_to_ini.yml Co-authored-by: Felix Fontein <felix@fontein.de> --------- Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
parent
8491bf7b49
commit
9307b76e74
5 changed files with 19 additions and 4 deletions
3
changelogs/fragments/8183-from_ini_to_ini.yml
Normal file
3
changelogs/fragments/8183-from_ini_to_ini.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
bugfixes:
|
||||||
|
- "to_ini filter plugin - disabling interpolation of ``ConfigParser`` to allow converting values with a ``%`` sign (https://github.com/ansible-collections/community.general/issues/8183, https://github.com/ansible-collections/community.general/pull/8185)."
|
||||||
|
- "from_ini filter plugin - disabling interpolation of ``ConfigParser`` to allow converting values with a ``%`` sign (https://github.com/ansible-collections/community.general/issues/8183, https://github.com/ansible-collections/community.general/pull/8185)."
|
|
@ -57,7 +57,7 @@ class IniParser(ConfigParser):
|
||||||
''' Implements a configparser which is able to return a dict '''
|
''' Implements a configparser which is able to return a dict '''
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__(interpolation=None)
|
||||||
self.optionxform = str
|
self.optionxform = str
|
||||||
|
|
||||||
def as_dict(self):
|
def as_dict(self):
|
||||||
|
|
|
@ -63,7 +63,7 @@ class IniParser(ConfigParser):
|
||||||
''' Implements a configparser which sets the correct optionxform '''
|
''' Implements a configparser which sets the correct optionxform '''
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__(interpolation=None)
|
||||||
self.optionxform = str
|
self.optionxform = str
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -12,15 +12,21 @@
|
||||||
another_section:
|
another_section:
|
||||||
connection: 'ssh'
|
connection: 'ssh'
|
||||||
|
|
||||||
|
interpolate_test:
|
||||||
|
interpolate_test_key: '%'
|
||||||
|
|
||||||
- name: 'Write INI file that reflects ini_test_dict to {{ ini_test_file }}'
|
- name: 'Write INI file that reflects ini_test_dict to {{ ini_test_file }}'
|
||||||
ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
dest: '{{ ini_test_file }}'
|
dest: '{{ ini_test_file }}'
|
||||||
content: |
|
content: |
|
||||||
[section_name]
|
[section_name]
|
||||||
key_name=key value
|
key_name = key value
|
||||||
|
|
||||||
[another_section]
|
[another_section]
|
||||||
connection=ssh
|
connection = ssh
|
||||||
|
|
||||||
|
[interpolate_test]
|
||||||
|
interpolate_test_key = %
|
||||||
|
|
||||||
- name: 'Slurp the test file: {{ ini_test_file }}'
|
- name: 'Slurp the test file: {{ ini_test_file }}'
|
||||||
ansible.builtin.slurp:
|
ansible.builtin.slurp:
|
||||||
|
|
|
@ -16,6 +16,9 @@
|
||||||
another_section:
|
another_section:
|
||||||
connection: 'ssh'
|
connection: 'ssh'
|
||||||
|
|
||||||
|
interpolate_test:
|
||||||
|
interpolate_test_key: '%'
|
||||||
|
|
||||||
- name: 'Write INI file manually to {{ ini_test_file }}'
|
- name: 'Write INI file manually to {{ ini_test_file }}'
|
||||||
ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
dest: '{{ ini_test_file }}'
|
dest: '{{ ini_test_file }}'
|
||||||
|
@ -26,6 +29,9 @@
|
||||||
[another_section]
|
[another_section]
|
||||||
connection = ssh
|
connection = ssh
|
||||||
|
|
||||||
|
[interpolate_test]
|
||||||
|
interpolate_test_key = %
|
||||||
|
|
||||||
- name: 'Slurp the manually created test file: {{ ini_test_file }}'
|
- name: 'Slurp the manually created test file: {{ ini_test_file }}'
|
||||||
ansible.builtin.slurp:
|
ansible.builtin.slurp:
|
||||||
src: '{{ ini_test_file }}'
|
src: '{{ ini_test_file }}'
|
||||||
|
|
Loading…
Reference in a new issue