mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-04-26 20:31:27 -07:00
Make ini parsing slightly more robust
Prior to this commit, the ini parser would fail if the inventory was not 100% utf-8. This commit makes this slightly more robust by omitting full line comments from that requirement. Fixes #17593
This commit is contained in:
parent
74b7590211
commit
23305540b4
3 changed files with 30 additions and 22 deletions
|
@ -20,17 +20,20 @@ from __future__ import (absolute_import, division, print_function)
|
|||
__metaclass__ = type
|
||||
|
||||
from collections import defaultdict
|
||||
from six import iteritems
|
||||
|
||||
from ansible.compat.six import iteritems
|
||||
from ansible.compat.six.moves import builtins
|
||||
from ansible.compat.tests import unittest
|
||||
from ansible.compat.tests.mock import patch, MagicMock
|
||||
from ansible.compat.tests.mock import MagicMock, mock_open, patch
|
||||
from ansible.inventory import Inventory
|
||||
from ansible.playbook.play import Play
|
||||
from ansible.vars import VariableManager
|
||||
|
||||
from units.mock.loader import DictDataLoader
|
||||
from units.mock.path import mock_unfrackpath_noop
|
||||
|
||||
from ansible.vars import VariableManager
|
||||
|
||||
|
||||
class TestVariableManager(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
|
@ -192,9 +195,7 @@ class TestVariableManager(unittest.TestCase):
|
|||
v = VariableManager()
|
||||
v._fact_cache = defaultdict(dict)
|
||||
|
||||
fake_loader = DictDataLoader({
|
||||
# inventory1
|
||||
'/etc/ansible/inventory1': """
|
||||
inventory1_filedata = """
|
||||
[group2:children]
|
||||
group1
|
||||
|
||||
|
@ -206,8 +207,11 @@ class TestVariableManager(unittest.TestCase):
|
|||
|
||||
[group2:vars]
|
||||
group_var = group_var_from_inventory_group2
|
||||
""",
|
||||
"""
|
||||
|
||||
fake_loader = DictDataLoader({
|
||||
# inventory1
|
||||
'/etc/ansible/inventory1': inventory1_filedata,
|
||||
# role defaults_only1
|
||||
'/etc/ansible/roles/defaults_only1/defaults/main.yml': """
|
||||
default_var: "default_var_from_defaults_only1"
|
||||
|
@ -231,7 +235,8 @@ class TestVariableManager(unittest.TestCase):
|
|||
})
|
||||
|
||||
mock_basedir.return_value = './'
|
||||
inv1 = Inventory(loader=fake_loader, variable_manager=v, host_list='/etc/ansible/inventory1')
|
||||
with patch.object(builtins, 'open', mock_open(read_data=inventory1_filedata)):
|
||||
inv1 = Inventory(loader=fake_loader, variable_manager=v, host_list='/etc/ansible/inventory1')
|
||||
inv1.set_playbook_basedir('./')
|
||||
|
||||
play1 = Play.load(dict(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue