summaryrefslogtreecommitdiff
path: root/lib/python2.7/json/tests/test_dump.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/json/tests/test_dump.py')
-rw-r--r--lib/python2.7/json/tests/test_dump.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/python2.7/json/tests/test_dump.py b/lib/python2.7/json/tests/test_dump.py
new file mode 100644
index 0000000..cd92569
--- /dev/null
+++ b/lib/python2.7/json/tests/test_dump.py
@@ -0,0 +1,32 @@
+from cStringIO import StringIO
+from json.tests import PyTest, CTest
+
+
+class TestDump(object):
+ def test_dump(self):
+ sio = StringIO()
+ self.json.dump({}, sio)
+ self.assertEqual(sio.getvalue(), '{}')
+
+ def test_dumps(self):
+ self.assertEqual(self.dumps({}), '{}')
+
+ def test_encode_truefalse(self):
+ self.assertEqual(self.dumps(
+ {True: False, False: True}, sort_keys=True),
+ '{"false": true, "true": false}')
+ self.assertEqual(self.dumps(
+ {2: 3.0, 4.0: 5L, False: 1, 6L: True}, sort_keys=True),
+ '{"false": 1, "2": 3.0, "4.0": 5, "6": true}')
+
+ # Issue 16228: Crash on encoding resized list
+ def test_encode_mutated(self):
+ a = [object()] * 10
+ def crasher(obj):
+ del a[-1]
+ self.assertEqual(self.dumps(a, default=crasher),
+ '[null, null, null, null, null]')
+
+
+class TestPyDump(TestDump, PyTest): pass
+class TestCDump(TestDump, CTest): pass