mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
Merge pull request #50750 from bewing/pepa12
Fix last key detection in pillar.pepa`key_value_to_tree`
This commit is contained in:
commit
dcdb9b23b1
2 changed files with 31 additions and 2 deletions
|
@ -365,8 +365,8 @@ def key_value_to_tree(data):
|
|||
for flatkey, value in six.iteritems(data):
|
||||
t = tree
|
||||
keys = flatkey.split(__opts__['pepa_delimiter'])
|
||||
for key in keys:
|
||||
if key == keys[-1]:
|
||||
for i, key in enumerate(keys, 1):
|
||||
if i == len(keys):
|
||||
t[key] = value
|
||||
else:
|
||||
t = t.setdefault(key, {})
|
||||
|
|
29
tests/unit/pillar/test_pepa.py
Normal file
29
tests/unit/pillar/test_pepa.py
Normal file
|
@ -0,0 +1,29 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Import python libs
|
||||
from __future__ import absolute_import, print_function, unicode_literals
|
||||
from collections import OrderedDict
|
||||
|
||||
# Import Salt Testing libs
|
||||
from tests.support.unit import TestCase
|
||||
|
||||
# Import Salt Libs
|
||||
import salt.pillar.pepa as pepa
|
||||
|
||||
|
||||
class PepaPillarTestCase(TestCase):
|
||||
def test_repeated_keys(self):
|
||||
expected_result = {
|
||||
"foo": {
|
||||
"bar": {
|
||||
"foo": True,
|
||||
"baz": True,
|
||||
},
|
||||
},
|
||||
}
|
||||
data = OrderedDict([
|
||||
('foo..bar..foo', True),
|
||||
('foo..bar..baz', True),
|
||||
])
|
||||
result = pepa.key_value_to_tree(data)
|
||||
self.assertDictEqual(result, expected_result)
|
Loading…
Add table
Reference in a new issue