1 2import yaml 3import test_constructor 4import pprint 5 6def test_representer_types(code_filename, verbose=False): 7 test_constructor._make_objects() 8 for allow_unicode in [False, True]: 9 for encoding in ['utf-8', 'utf-16-be', 'utf-16-le']: 10 native1 = test_constructor._load_code(open(code_filename, 'rb').read()) 11 native2 = None 12 try: 13 output = yaml.dump(native1, Dumper=test_constructor.MyDumper, 14 allow_unicode=allow_unicode, encoding=encoding) 15 native2 = yaml.load(output, Loader=test_constructor.MyLoader) 16 try: 17 if native1 == native2: 18 continue 19 except TypeError: 20 pass 21 value1 = test_constructor._serialize_value(native1) 22 value2 = test_constructor._serialize_value(native2) 23 if verbose: 24 print("SERIALIZED NATIVE1:") 25 print(value1) 26 print("SERIALIZED NATIVE2:") 27 print(value2) 28 assert value1 == value2, (native1, native2) 29 finally: 30 if verbose: 31 print("NATIVE1:") 32 pprint.pprint(native1) 33 print("NATIVE2:") 34 pprint.pprint(native2) 35 print("OUTPUT:") 36 print(output) 37 38test_representer_types.unittest = ['.code'] 39 40if __name__ == '__main__': 41 import test_appliance 42 test_appliance.run(globals()) 43 44