source: pyyaml/trunk/tests/lib3/test_representer.py @ 351

Revision 351, 1.5 KB checked in by xi, 5 years ago (diff)

Fixed emitting of invalid BOM for UTF-16.

RevLine 
[133]1
[322]2import yaml
3import test_constructor
4import pprint
[133]5
[322]6def test_representer_types(code_filename, verbose=False):
7    test_constructor._make_objects()
8    for allow_unicode in [False, True]:
[351]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
[133]12            try:
[351]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)
[133]37
[322]38test_representer_types.unittest = ['.code']
[133]39
[322]40if __name__ == '__main__':
41    import test_appliance
42    test_appliance.run(globals())
43
Note: See TracBrowser for help on using the repository browser.