diff options
Diffstat (limited to 'tests/lib/test_representer.py')
-rw-r--r-- | tests/lib/test_representer.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/lib/test_representer.py b/tests/lib/test_representer.py new file mode 100644 index 0000000..f814705 --- /dev/null +++ b/tests/lib/test_representer.py @@ -0,0 +1,42 @@ + +import yaml +import test_constructor +import pprint + +def test_representer_types(code_filename, verbose=False): + test_constructor._make_objects() + for allow_unicode in [False, True]: + native1 = test_constructor._load_code(open(code_filename, 'rb').read()) + native2 = None + try: + output = yaml.dump(native1, Dumper=test_constructor.MyDumper, + allow_unicode=allow_unicode) + native2 = yaml.load(output, Loader=test_constructor.MyLoader) + try: + if native1 == native2: + continue + except TypeError: + pass + value1 = test_constructor._serialize_value(native1) + value2 = test_constructor._serialize_value(native2) + if verbose: + print "SERIALIZED NATIVE1:" + print value1 + print "SERIALIZED NATIVE2:" + print value2 + assert value1 == value2, (native1, native2) + finally: + if verbose: + print "NATIVE1:" + pprint.pprint(native1) + print "NATIVE2:" + pprint.pprint(native2) + print "OUTPUT:" + print output + +test_representer_types.unittest = ['.code'] + +if __name__ == '__main__': + import test_appliance + test_appliance.run(globals()) + |