@@ -178,3 +178,73 @@ def test_check_yajl_version_warnsOnlyWhenMismatchedVersions(self):
178
178
179
179
def test_checkYajlPyAndYajlHaveSameVersion (self ):
180
180
self .failUnless (yajl .check_yajl_version ())
181
+
182
+ def test_YajlGen_callsYajlGenFreeWhenDone (self ):
183
+ self .mock ('yajl.yajl_gen.byref' , tracker = None )
184
+ self .mock ('yajl.yajl.yajl_gen_alloc' )
185
+ self .mock ('yajl.yajl.yajl_gen_free' )
186
+ g = yajl .YajlGen ()
187
+ del g
188
+ self .assertSameTrace (
189
+ 'Called yajl.yajl.yajl_gen_alloc(None, None)\n '
190
+ 'Called yajl.yajl.yajl_gen_free(None)\n '
191
+ )
192
+
193
+ def _yajl_gen_sample (self , g ):
194
+ g .yajl_gen_map_open ()
195
+ g .yajl_gen_string ("a" )
196
+ g .yajl_gen_array_open ()
197
+ g .yajl_gen_null ()
198
+ g .yajl_gen_bool (True )
199
+ g .yajl_gen_integer (1 )
200
+ g .yajl_gen_double (2.2 )
201
+ g .yajl_gen_number (str (3 ))
202
+ yield g .yajl_gen_get_buf ()
203
+ g .yajl_gen_string ("b" )
204
+ g .yajl_gen_array_close ()
205
+ g .yajl_gen_map_close ()
206
+ yield g .yajl_gen_get_buf ()
207
+
208
+ def test_YajlGen_streamedOUtput (self ):
209
+ g = yajl .YajlGen (beautify = False )
210
+ results = list (self ._yajl_gen_sample (g ))
211
+ self .failUnlessEqual (',"b"]}' , results [1 ])
212
+
213
+ def test_YajlGen_minimizeOUtput (self ):
214
+ g = yajl .YajlGen (beautify = False )
215
+ results = self ._yajl_gen_sample (g )
216
+ self .failUnlessEqual (
217
+ '{"a":[null,true,1,2.2,3,"b"]}' ,
218
+ '' .join (results ))
219
+
220
+ def test_YajlGen_beautifyOUtput (self ):
221
+ g = yajl .YajlGen (beautify = True )
222
+ results = self ._yajl_gen_sample (g )
223
+ self .failUnlessEqual (
224
+ '{\n '
225
+ ' "a": [\n '
226
+ ' null,\n '
227
+ ' true,\n '
228
+ ' 1,\n '
229
+ ' 2.2,\n '
230
+ ' 3,\n '
231
+ ' "b"\n '
232
+ ' ]\n '
233
+ '}\n ' ,
234
+ '' .join (results ))
235
+
236
+ def test_YajlGen_indentOUtput (self ):
237
+ g = yajl .YajlGen (beautify = True , indent = "**" )
238
+ results = self ._yajl_gen_sample (g )
239
+ self .failUnlessEqual (
240
+ '{\n '
241
+ '**"a": [\n '
242
+ '****null,\n '
243
+ '****true,\n '
244
+ '****1,\n '
245
+ '****2.2,\n '
246
+ '****3,\n '
247
+ '****"b"\n '
248
+ '**]\n '
249
+ '}\n ' ,
250
+ '' .join (results ))
0 commit comments