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
2017-03-15 15:38:10 -07:00

62 lines
1.2 KiB
Python

#
#
#
from __future__ import absolute_import, division, print_function, \
unicode_literals
from StringIO 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.assertEquals({
1: 'a',
2: 'b',
'3': 'c',
10: 'd',
'11': 'e',
}, safe_load('''
1: a
2: b
'3': c
10: d
'11': e
'''))
self.assertEquals({
'*.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.assertEquals('keys out of order: *.2.2, *.1.2, *.11.2, *.10.1',
ctx.exception.problem)
buf = StringIO()
safe_dump({
'*.1.1': 42,
'*.11.1': 43,
'*.2.1': 44,
}, buf)
self.assertEquals("---\n'*.1.1': 42\n'*.2.1': 44\n'*.11.1': 43\n",
buf.getvalue())