1 from unittest import TestCase
3 import simplejson as json
9 class RecursiveJSONEncoder(json.JSONEncoder):
12 if o is JSONTestObject:
14 return [JSONTestObject]
16 return 'JSONTestObject'
17 return json.JSONEncoder.default(o)
20 class TestRecursion(TestCase):
21 def test_listrecursion(self):
29 self.fail("didn't raise ValueError on list recursion")
38 self.fail("didn't raise ValueError on alternating list recursion")
41 # ensure that the marker is cleared
44 def test_dictrecursion(self):
52 self.fail("didn't raise ValueError on dict recursion")
55 # ensure that the marker is cleared
58 def test_defaultrecursion(self):
59 enc = RecursiveJSONEncoder()
60 self.assertEquals(enc.encode(JSONTestObject), '"JSONTestObject"')
63 enc.encode(JSONTestObject)
67 self.fail("didn't raise ValueError on default recursion")