Skip to content
Snippets Groups Projects
Commit 979944bff9b8 authored by Bob Ippolito's avatar Bob Ippolito
Browse files

Merge pull request #78 from idank/master

fix pickle breakage with JSONDecodeError
No related branches found
No related tags found
No related merge requests found
......@@ -41,6 +41,9 @@
else:
self.endlineno, self.endcolno = None, None
def __reduce__(self):
return self.__class__, (self.msg, self.doc, self.pos, self.end)
def linecol(doc, pos):
lineno = doc.count('\n', 0, pos) + 1
......
import sys
import sys, pickle
from unittest import TestCase
import simplejson as json
......@@ -33,3 +33,19 @@
self.fail('Expected JSONDecodeError')
self.assertEqual(err.lineno, 1)
self.assertEqual(err.colno, 10)
def test_error_is_pickable(self):
err = None
try:
json.loads('{}\na\nb')
except json.JSONDecodeError:
err = sys.exc_info()[1]
else:
self.fail('Expected JSONDecodeError')
s = pickle.dumps(err)
e = pickle.loads(s)
self.assertEquals(err.msg, e.msg)
self.assertEquals(err.doc, e.doc)
self.assertEquals(err.pos, e.pos)
self.assertEquals(err.end, e.end)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment