diff options
author | Doug Hellmann <doug.hellmann@gmail.com> | 2010-07-21 12:36:33 +0000 |
---|---|---|
committer | Doug Hellmann <doug.hellmann@gmail.com> | 2010-07-21 12:36:33 +0000 |
commit | f31db93fc1239a6d9c2fe61c73ba9303005208e1 (patch) | |
tree | 10da07135e4a337be18c79c3883f69ac95e97e77 | |
parent | 8c4fa1159173b3c8dc59f4cf1e73419eb2128961 (diff) | |
download | cpython-git-f31db93fc1239a6d9c2fe61c73ba9303005208e1.tar.gz |
Apply patch from Ray Allen for issue 9296
-rw-r--r-- | Lib/json/tests/test_fail.py | 9 | ||||
-rw-r--r-- | Modules/_json.c | 2 |
2 files changed, 10 insertions, 1 deletions
diff --git a/Lib/json/tests/test_fail.py b/Lib/json/tests/test_fail.py index 72df517d14..dd9ec4137e 100644 --- a/Lib/json/tests/test_fail.py +++ b/Lib/json/tests/test_fail.py @@ -74,3 +74,12 @@ class TestFail(TestCase): pass else: self.fail("Expected failure for fail{0}.json: {1!r}".format(idx, doc)) + + def test_non_string_keys_dict(self): + data = {'a' : 1, (1, 2) : 2} + + #This is for c encoder + self.assertRaises(TypeError, json.dumps, data) + + #This is for python encoder + self.assertRaises(TypeError, json.dumps, data, indent=True) diff --git a/Modules/_json.c b/Modules/_json.c index b6599f83dc..2ef66e3fa4 100644 --- a/Modules/_json.c +++ b/Modules/_json.c @@ -2147,7 +2147,7 @@ encoder_listencode_dict(PyEncoderObject *s, PyObject *rval, PyObject *dct, Py_ss } else { /* TODO: include repr of key */ - PyErr_SetString(PyExc_ValueError, "keys must be a string"); + PyErr_SetString(PyExc_TypeError, "keys must be a string"); goto bail; } |