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")