mirror of
				https://github.com/github/octodns.git
				synced 2024-05-11 05:55:00 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			71 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #
 | |
| #
 | |
| #
 | |
| 
 | |
| from __future__ import absolute_import, division, print_function, \
 | |
|     unicode_literals
 | |
| 
 | |
| from six 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.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.assertEquals("---\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.assertEquals("---\n45a0392a: 43\n45a03129: 42\n", buf.getvalue())
 |