# -*- coding: utf-8 -*- from __future__ import absolute_import, print_function, unicode_literals import unittest import test import yamlish test_data_list = [ { "name": 'Simple scalar', "in": 1, "out": """\ --- 1 ... """, }, { "name": 'Undef', "in": None, "out": """\ --- ~ ... """, }, { "name": 'Unprintable', "in": "\x01\n\t", "out": """\ --- "\\x01\\n\\t" ... """, }, { "name": 'Simple array', "in": [ 1, 2, 3 ], "out": """\ --- - 1 - 2 - 3 ... """, }, { "name": 'Array, two elements, None', "in": [ None, None ], "out": """\ --- - ~ - ~ ... """, }, { "name": 'Nested array', "in": [ 1, 2, [ 3, 4 ], 5 ], "out": """\ --- - 1 - 2 - - 3 - 4 - 5 ... """, }, { "name": 'Simple hash', "in": { "one": 1, "two": 2, "three": 3 }, "out": """\ --- one: 1 three: 3 two: 2 ... """, }, { "name": 'Nested hash', "in": { "one": 1, "two": 2, "more": { "three": 3, "four": 4 } }, "out": """\ --- more: four: 4 three: 3 one: 1 two: 2 ... """, }, { "name": 'Unprintable key', "in": { "one": 1, "\x02": 2, "three": 3 }, "out": """\ --- "\\x02": 2 one: 1 three: 3 ... """, }, { "name": 'Empty key', "in": { '': 'empty' }, "out": """\ --- '': empty ... """, }, { "name": 'Empty value', "in": { '': '' }, "out": """\ --- '': '' ... """, }, { "name": 'Complex', "in": { 'bill-to': { 'given': 'Chris', 'address': { 'city': 'Royal Oak', 'postal': 48046, 'lines': "458 Walkman Dr.\nSuite #292\n", 'state': 'MI' }, 'family': 'Dumars' }, 'invoice': 34843, 'date': '2001-01-23', 'tax': 251.42, 'product': [ { 'sku': 'BL394D', 'quantity': 4, 'price': 450.00, 'description': 'Basketball' }, { 'sku': 'BL4438H', 'quantity': 1, 'price': 2392.00, 'description': 'Super Hoop' } ], 'comments': "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338\n", 'total': 4443.52 }, "out": r""" --- bill-to: address: city: 'Royal Oak' lines: "458 Walkman Dr.\nSuite #292\n" postal: 48046 state: MI family: Dumars given: Chris comments: "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338\n" date: 2001-01-23 invoice: 34843 product: - description: Basketball price: 450.00 quantity: 4 sku: BL394D - description: 'Super Hoop' price: 2392.00 quantity: 1 sku: BL4438H tax: 251.42 total: 4443.52 ... """, }, ] class TestWriter(unittest.TestCase): # IGNORE:C0111 pass test.generate_testsuite(test_data_list, TestWriter, yamlish.dump, direction=test.OUTPUT) if __name__ == "__main__": unittest.main()