1
0
Fork 0
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:
Steffen Scheib 2024-04-09 08:01:44 +02:00 committed by GitHub
parent 8491bf7b49
commit 9307b76e74
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 19 additions and 4 deletions

View 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)."

View file

@ -57,7 +57,7 @@ class IniParser(ConfigParser):
''' Implements a configparser which is able to return a dict '''
def __init__(self):
super().__init__()
super().__init__(interpolation=None)
self.optionxform = str
def as_dict(self):

View file

@ -63,7 +63,7 @@ class IniParser(ConfigParser):
''' Implements a configparser which sets the correct optionxform '''
def __init__(self):
super().__init__()
super().__init__(interpolation=None)
self.optionxform = str

View file

@ -12,15 +12,21 @@
another_section:
connection: 'ssh'
interpolate_test:
interpolate_test_key: '%'
- name: 'Write INI file that reflects ini_test_dict to {{ ini_test_file }}'
ansible.builtin.copy:
dest: '{{ ini_test_file }}'
content: |
[section_name]
key_name=key value
key_name = key value
[another_section]
connection=ssh
connection = ssh
[interpolate_test]
interpolate_test_key = %
- name: 'Slurp the test file: {{ ini_test_file }}'
ansible.builtin.slurp:

View file

@ -16,6 +16,9 @@
another_section:
connection: 'ssh'
interpolate_test:
interpolate_test_key: '%'
- name: 'Write INI file manually to {{ ini_test_file }}'
ansible.builtin.copy:
dest: '{{ ini_test_file }}'
@ -26,6 +29,9 @@
[another_section]
connection = ssh
[interpolate_test]
interpolate_test_key = %
- name: 'Slurp the manually created test file: {{ ini_test_file }}'
ansible.builtin.slurp:
src: '{{ ini_test_file }}'