1
0
mirror of https://github.com/github/octodns.git synced 2024-05-11 05:55:00 +00:00
Files
github-octodns/tests/test_octodns_yaml.py
2023-01-22 13:54:19 -08:00

65 lines
1.4 KiB
Python

#
#
#
from io import StringIO
from unittest import TestCase
from yaml.constructor import ConstructorError
from octodns.yaml import safe_dump, safe_load
class TestYaml(TestCase):
def test_stuff(self):
self.assertEqual(
{1: 'a', 2: 'b', '3': 'c', 10: 'd', '11': 'e'},
safe_load(
'''
1: a
2: b
'3': c
10: d
'11': e
'''
),
)
self.assertEqual(
{'*.1.2': 'a', '*.2.2': 'b', '*.10.1': 'c', '*.11.2': 'd'},
safe_load(
'''
'*.1.2': 'a'
'*.2.2': 'b'
'*.10.1': 'c'
'*.11.2': 'd'
'''
),
)
with self.assertRaises(ConstructorError) as ctx:
safe_load(
'''
'*.2.2': 'b'
'*.1.2': 'a'
'*.11.2': 'd'
'*.10.1': 'c'
'''
)
self.assertTrue(
'keys out of order: expected *.1.2 got *.2.2 at'
in ctx.exception.problem
)
buf = StringIO()
safe_dump({'*.1.1': 42, '*.11.1': 43, '*.2.1': 44}, buf)
self.assertEqual(
"---\n'*.1.1': 42\n'*.2.1': 44\n'*.11.1': 43\n", buf.getvalue()
)
# hex sorting isn't ideal, not treated as hex, this make sure we don't
# change the behavior
buf = StringIO()
safe_dump({'45a03129': 42, '45a0392a': 43}, buf)
self.assertEqual("---\n45a0392a: 43\n45a03129: 42\n", buf.getvalue())