# HG changeset patch # Parent edbc62549c9b1eeb19955d4206e2de6a5c0301d2 diff --git a/Lib/test/test_json/test_default.py b/Lib/test/test_json/test_default.py --- a/Lib/test/test_json/test_default.py +++ b/Lib/test/test_json/test_default.py @@ -7,6 +7,23 @@ self.dumps(type, default=repr), self.dumps(repr(type))) + def test_dict_keys(self): + def default(obj): + if isinstance(obj, bytes): + return obj.decode('ascii') + raise TypeError + self.assertEqual( + self.loads(self.dumps({b'a' : 'b', 'b' : 'c'}, default=default)), + {'b' : 'c', 'a' : 'b'} + ) + self.assertEqual( + self.loads(self.dumps({b'a' : 'b', 'b' : 'c', 1j: 2j}, + skipkeys=True, default=default)), + {'b' : 'c', 'a' : 'b'} + ) + with self.assertRaises(TypeError): + self.dumps({b'a' : 'b', 'b' : 'c', 1j: 2j}, default=default) + class TestPyDefault(TestDefault, PyTest): pass class TestCDefault(TestDefault, CTest): pass