Sorted the dictionary.

This commit is contained in:
Jeff Baskin 2017-01-18 21:29:15 -05:00
parent f96a5b9b4b
commit 243ab902ab
2 changed files with 12 additions and 5 deletions

View File

@ -1,3 +1,5 @@
{%- set key = 0 -%}
{%- set value = 1 -%}
{%- macro keepalived_config(data, recurse=-1) -%} {%- macro keepalived_config(data, recurse=-1) -%}
{%- set recurse = recurse + 1 -%} {%- set recurse = recurse + 1 -%}
{%- if data is none -%} {%- if data is none -%}
@ -8,16 +10,16 @@
{%- if recurse > 0 -%} {%- if recurse > 0 -%}
{{- '{\n' -}} {{- '{\n' -}}
{%- endif -%} {%- endif -%}
{%- for key, value in data.iteritems() -%} {%- for item in data|dictsort -%}
{{- key }} {{ keepalived_config(value, recurse) -}} {{- item[key] }} {{ keepalived_config(item[value], recurse) -}}
{%- endfor -%} {%- endfor -%}
{%- if recurse > 0 -%} {%- if recurse > 0 -%}
{{- '}\n' -}} {{- '}\n' -}}
{%- endif -%} {%- endif -%}
{%- else -%} {%- else -%}
{{- '{\n' -}} {{- '{\n' -}}
{%- for value in data -%} {%- for item in data -%}
{{- keepalived_config(value) -}} {{- keepalived_config(item) -}}
{%- endfor -%} {%- endfor -%}
{{- '}\n' -}} {{- '}\n' -}}
{%- endif -%} {%- endif -%}

View File

@ -12,7 +12,7 @@ class TestKeepalivedConfiguration(unittest.TestCase):
'keepalived', 'keepalived',
'templates')) 'templates'))
self.t_conf = Environment(loader=FileSystemLoader(self.t_dir), self.t_conf = Environment(loader=FileSystemLoader(self.t_dir),
trim_blocks=True) trim_blocks=True)
def renderTest(self, data, result): def renderTest(self, data, result):
holder = self.t_conf.get_template('test_config.jinja').render(testdata=data) holder = self.t_conf.get_template('test_config.jinja').render(testdata=data)
@ -49,5 +49,10 @@ class TestKeepalivedConfiguration(unittest.TestCase):
result = 'friends {\nrubble barney\n}\n' result = 'friends {\nrubble barney\n}\n'
self.renderTest(testdata, result) self.renderTest(testdata, result)
def test_key_ordered_hashs(self):
testdata = {'friends': {'fred': 'flintstone', 'barney': 'rubble', 'wilma': 'flintstone', 'betty': 'rubble'}}
result = 'friends {\nbarney rubble\nbetty rubble\nfred flintstone\nwilma flintstone\n}\n'
self.renderTest(testdata, result)
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()