diff options
-rw-r--r-- | tests/test_implementations.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/test_implementations.py b/tests/test_implementations.py new file mode 100644 index 0000000..e53e483 --- /dev/null +++ b/tests/test_implementations.py @@ -0,0 +1,43 @@ +from nose.tools import assert_raises +import anyjson + +modnames = [e[0] for e in anyjson._modules] + +def test_default_serialization(): + assert anyjson.serialize([1,2,3]).replace(" ", "") == "[1,2,3]" + + +def test_default_deserialization(): + assert anyjson.deserialize("[1,2,3]") == [1,2,3] + + +def test_forced_serialization(): + for name in modnames: + try: + anyjson.force_implementation(name) + except ImportError: + continue # module can't be tested, try next + + assert anyjson.serialize([1,2,3]).replace(" ", "") == "[1,2,3]" + + +def test_forced_deserialization(): + for name in modnames: + try: + anyjson.force_implementation(name) + except ImportError: + continue # module can't be tested, try next + + assert anyjson.deserialize("[1,2,3]") == [1,2,3] + + +def test_exceptions(): + for name in modnames: + try: + anyjson.force_implementation(name) + except ImportError: + continue # module can't be tested, try next + + assert_raises(TypeError, anyjson.serialize, [object()]) + assert_raises(ValueError, anyjson.deserialize, "[") + |