diff --git a/simplejson/tests/test_dump.py b/simplejson/tests/test_dump.py index c0e876023486eaba8a21d18592d5dc8f38760fdd_c2ltcGxlanNvbi90ZXN0cy90ZXN0X2R1bXAucHk=..d6fe30941ff24b8900f39d6789d3eb16a3e6ce95_c2ltcGxlanNvbi90ZXN0cy90ZXN0X2R1bXAucHk= 100644 --- a/simplejson/tests/test_dump.py +++ b/simplejson/tests/test_dump.py @@ -1,4 +1,4 @@ from unittest import TestCase -from simplejson.compat import StringIO, long_type, b +from simplejson.compat import StringIO, long_type, b, binary_type, PY3 import simplejson as json @@ -3,5 +3,10 @@ import simplejson as json +def as_text_type(s): + if PY3 and isinstance(s, binary_type): + return s.decode('ascii') + return s + class TestDump(TestCase): def test_dump(self): sio = StringIO() @@ -26,4 +31,7 @@ self.assertEquals( json.loads(json.dumps({k: expect})), {expect: expect}) + self.assertEquals( + json.loads(json.dumps({k: expect}, sort_keys=True)), + {expect: expect}) self.assertRaises(TypeError, json.dumps, {json: 1}) @@ -29,7 +37,18 @@ self.assertRaises(TypeError, json.dumps, {json: 1}) - self.assertEquals( - json.loads(json.dumps({json: 1}, skipkeys=True)), - {}) + for v in [{}, {'other': 1}, {b('derp'): 1, 'herp': 2}]: + for sort_keys in [False, True]: + v0 = dict(v) + v0[json] = 1 + v1 = dict((as_text_type(key), val) for (key, val) in v.items()) + self.assertEquals( + json.loads(json.dumps(v0, skipkeys=True, sort_keys=sort_keys)), + v1) + self.assertEquals( + json.loads(json.dumps({'': v0}, skipkeys=True, sort_keys=sort_keys)), + {'': v1}) + self.assertEquals( + json.loads(json.dumps([v0], skipkeys=True, sort_keys=sort_keys)), + [v1]) def test_dumps(self): self.assertEquals(json.dumps({}), '{}')