1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00
community.general/tests/integration/targets/ini_file/tasks/tests/04-symlink.yml
Jonathan Kamens 8a9b98273d
Add ignore_spaces option to ini_file to ignore spacing changes (#7273)
* Add `ignore_spaces` option to `ini_file` to ignore spacing changes

Add a new `ignore_spaces` option to the `ini_file` module which, if
true, prevents the module from changing a line in a file if the only
thing that would change by doing so is whitespace before or after the
`=`.

Also add test cases for this new functionality. There were previously
no tests for `ini_file` at all, and this doesn't attempt to fix that,
but it does add tests to ensure that the new behavior implemented here
as well as the old behavior in the affected code are correct.

Fixes #7202.

* Add changelog fragment

* pep8 / pylint

* remove unused import

* fix typo in comment in integration test file

* Add symlink tests to main.yml

It appears that #6546 added symlink tests but neglected to add them to
main.yml so they weren't being executed.

* ini_file symlink tests; create output files in correct location

* Add integration tests for ini_file ignore_spaces

* PR feedback
2023-09-17 13:22:22 +02:00

59 lines
1.8 KiB
YAML

---
# Copyright (c) Ansible Project
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
- block: &prepare
- name: Create the final file
ansible.builtin.copy:
content: |
[main]
foo=BAR
dest: "{{ remote_tmp_dir }}/my_original_file.ini"
- name: Clean up symlink.ini
ansible.builtin.file:
path: "{{ remote_tmp_dir }}/symlink.ini"
state: absent
- name: Create a symbolic link
ansible.builtin.file:
src: my_original_file.ini
dest: "{{ remote_tmp_dir }}/symlink.ini"
state: link
- name: Set the proxy key on the symlink which will be converted as a file
community.general.ini_file:
path: "{{ remote_tmp_dir }}/symlink.ini"
section: main
option: proxy
value: 'http://proxy.myorg.org:3128'
- name: Set the proxy key on the final file that is still unchanged
community.general.ini_file:
path: "{{ remote_tmp_dir }}/my_original_file.ini"
section: main
option: proxy
value: 'http://proxy.myorg.org:3128'
register: result
- ansible.builtin.assert:
that:
- result is changed
# With follow
- block: *prepare
- name: Set the proxy key on the symlink which will be preserved
community.general.ini_file:
path: "{{ remote_tmp_dir }}/symlink.ini"
section: main
option: proxy
value: 'http://proxy.myorg.org:3128'
follow: true
register: result
- name: Set the proxy key on the target directly that was changed in the previous step
community.general.ini_file:
path: "{{ remote_tmp_dir }}/my_original_file.ini"
section: main
option: proxy
value: 'http://proxy.myorg.org:3128'
register: result
- ansible.builtin.assert:
that:
- "not (result is changed)"