File tree Expand file tree Collapse file tree 1 file changed +17
-2
lines changed
Expand file tree Collapse file tree 1 file changed +17
-2
lines changed Original file line number Diff line number Diff line change @@ -66,6 +66,10 @@ def __lt__(self, o):
6666 self .assertEqual (self .dumps (d , sort_keys = True ), '{"1337": "true.dat"}' )
6767
6868 def test_mutate_items_during_encode (self ):
69+ c_make_encoder = getattr (self .json .encoder , 'c_make_encoder' , None )
70+ if c_make_encoder is None :
71+ self .skipTest ("c_make_encoder not available" )
72+
6973 cache = []
7074
7175 class BadDict (dict ):
@@ -80,9 +84,20 @@ def items(self):
8084 def encode_str (obj ):
8185 if cache :
8286 cache .pop ().clear ()
83- return 'x'
87+ return '"x"'
88+
89+ encoder = c_make_encoder (
90+ None , lambda o : "null" ,
91+ encode_str , None ,
92+ ": " , ", " , False ,
93+ False , True
94+ )
95+
96+ try :
97+ encoder (BadDict (), 0 )
98+ except (ValueError , RuntimeError ):
99+ pass
84100
85- self .assertEqual (self .dumps (BadDict (), default = encode_str ), '{"boom": "x"}' )
86101
87102class TestPyDump (TestDump , PyTest ): pass
88103
You can’t perform that action at this time.
0 commit comments