summaryrefslogtreecommitdiff
path: root/tests/lib/test_representer.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib/test_representer.py')
-rw-r--r--tests/lib/test_representer.py42
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())
+