Skip to content

Commit af50153

Browse files
committed
Added unit tests for YajlGen.
1 parent 59a4085 commit af50153

File tree

2 files changed

+72
-1
lines changed

2 files changed

+72
-1
lines changed

tests/test_yajl.py

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,3 +178,73 @@ def test_check_yajl_version_warnsOnlyWhenMismatchedVersions(self):
178178

179179
def test_checkYajlPyAndYajlHaveSameVersion(self):
180180
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))

tests/yajl_test_lib.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ def tearDown(self):
2424
unittest.TestCase.tearDown(self)
2525

2626
def mock(self, *args, **kwargs):
27-
kwargs['tracker'] = self.tt
27+
if 'tracker' not in kwargs:
28+
kwargs['tracker'] = self.tt
2829
return minimock.mock(*args, **kwargs)
2930

3031
def assertSameTrace(self, want):

0 commit comments

Comments
 (0)