test_tuple.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import unittest
  2. from simplejson.compat import StringIO
  3. import simplejson as json
  4. class TestTuples(unittest.TestCase):
  5. def test_tuple_array_dumps(self):
  6. t = (1, 2, 3)
  7. expect = json.dumps(list(t))
  8. # Default is True
  9. self.assertEqual(expect, json.dumps(t))
  10. self.assertEqual(expect, json.dumps(t, tuple_as_array=True))
  11. self.assertRaises(TypeError, json.dumps, t, tuple_as_array=False)
  12. # Ensure that the "default" does not get called
  13. self.assertEqual(expect, json.dumps(t, default=repr))
  14. self.assertEqual(expect, json.dumps(t, tuple_as_array=True,
  15. default=repr))
  16. # Ensure that the "default" gets called
  17. self.assertEqual(
  18. json.dumps(repr(t)),
  19. json.dumps(t, tuple_as_array=False, default=repr))
  20. def test_tuple_array_dump(self):
  21. t = (1, 2, 3)
  22. expect = json.dumps(list(t))
  23. # Default is True
  24. sio = StringIO()
  25. json.dump(t, sio)
  26. self.assertEqual(expect, sio.getvalue())
  27. sio = StringIO()
  28. json.dump(t, sio, tuple_as_array=True)
  29. self.assertEqual(expect, sio.getvalue())
  30. self.assertRaises(TypeError, json.dump, t, StringIO(),
  31. tuple_as_array=False)
  32. # Ensure that the "default" does not get called
  33. sio = StringIO()
  34. json.dump(t, sio, default=repr)
  35. self.assertEqual(expect, sio.getvalue())
  36. sio = StringIO()
  37. json.dump(t, sio, tuple_as_array=True, default=repr)
  38. self.assertEqual(expect, sio.getvalue())
  39. # Ensure that the "default" gets called
  40. sio = StringIO()
  41. json.dump(t, sio, tuple_as_array=False, default=repr)
  42. self.assertEqual(
  43. json.dumps(repr(t)),
  44. sio.getvalue())