@@ -24,11 +24,9 @@ def yajl_start_array(self, ctx):
2424 def yajl_end_array (self , ctx ):
2525 pass
2626
27- class YajlPyTests (MockTestCase ):
27+ class YajlParserTests (MockTestCase ):
2828 '''
29- Testing YAJL-PY interfaces/callbacks
30-
31- Description: Making sure yajl-py works with current installed yajl
29+ Testing :class:`YajlParser` interfaces/callbacks
3230 '''
3331 def setUp (self ):
3432 MockTestCase .setUp (self )
@@ -141,44 +139,10 @@ def test_raisesExceptionOnInvalidJson(self):
141139 yajl .YajlError ,
142140 parser .parse , invalid_json )
143141
144- def test_load_yajl_raisesOSErrorIfYajlNotFound (self ):
145- self .mock ('yajl.cdll.LoadLibrary' , raises = OSError ('ABCD' ))
146- e = None
147- try :
148- yajl .load_yajl ()
149- except OSError , e :
150- pass
151- self .failUnless ('Yajl shared object cannot be found.' in str (e ))
152-
153- def test_get_yajl_version_correctlyParsesYajlVersion (self ):
154- for major in [0 , 1 , 3 , 7 ]:
155- for minor in [0 , 1 , 2 , 5 ]:
156- for micro in [0 , 5 , 10 , 15 , 20 ]:
157- yajl_version = major * 10000 + minor * 100 + micro
158- self .mock ('yajl.yajl.yajl_version' , returns = yajl_version )
159- self .failUnlessEqual (
160- '%s.%s.%s' % (major , minor , micro ),
161- yajl .get_yajl_version ())
162-
163- def test_check_yajl_version_warnsOnlyWhenMismatchedVersions (self ):
164- import warnings
165- self .mock ('warnings.warn' , [locals ()])
166- self .mock ('yajl.__version__' , mock_obj = '1.1.1' )
167- self .mock ('yajl.yajl_version' , mock_obj = '1.1.1' )
168- self .failUnless (yajl .check_yajl_version ())
169- self .assertSameTrace ('' )
170- self .mock ('yajl.yajl_version' , mock_obj = '1.1.0' )
171- self .failIf (yajl .check_yajl_version ())
172- self .assertSameTrace (
173- "Called warnings.warn("
174- "'Using Yajl-Py v1.1.1 with Yajl v1.1.0. "
175- "It is advised to use the same Yajl-Py and Yajl versions',"
176- "<type 'exceptions.RuntimeWarning'>, stacklevel=3)"
177- )
178-
179- def test_checkYajlPyAndYajlHaveSameVersion (self ):
180- self .failUnless (yajl .check_yajl_version ())
181-
142+ class YajlGenTests (MockTestCase ):
143+ '''
144+ Testing :class:`YajlGen` works as expected
145+ '''
182146 def test_YajlGen_callsYajlGenFreeWhenDone (self ):
183147 self .mock ('yajl.yajl_gen.byref' , tracker = None )
184148 self .mock ('yajl.yajl.yajl_gen_alloc' )
@@ -248,3 +212,45 @@ def test_YajlGen_indentOUtput(self):
248212 '**]\n '
249213 '}\n ' ,
250214 '' .join (results ))
215+
216+ class YajlCommonTests (MockTestCase ):
217+ '''
218+ Testing common functions and the loading libyajl
219+ '''
220+ def test_load_yajl_raisesOSErrorIfYajlNotFound (self ):
221+ self .mock ('yajl.cdll.LoadLibrary' , raises = OSError ('ABCD' ))
222+ e = None
223+ try :
224+ yajl .load_yajl ()
225+ except OSError , e :
226+ pass
227+ self .failUnless ('Yajl shared object cannot be found.' in str (e ))
228+
229+ def test_get_yajl_version_correctlyParsesYajlVersion (self ):
230+ for major in [0 , 1 , 3 , 7 ]:
231+ for minor in [0 , 1 , 2 , 5 ]:
232+ for micro in [0 , 5 , 10 , 15 , 20 ]:
233+ yajl_version = major * 10000 + minor * 100 + micro
234+ self .mock ('yajl.yajl.yajl_version' , returns = yajl_version )
235+ self .failUnlessEqual (
236+ '%s.%s.%s' % (major , minor , micro ),
237+ yajl .get_yajl_version ())
238+
239+ def test_check_yajl_version_warnsOnlyWhenMismatchedVersions (self ):
240+ import warnings
241+ self .mock ('warnings.warn' , [locals ()])
242+ self .mock ('yajl.__version__' , mock_obj = '1.1.1' )
243+ self .mock ('yajl.yajl_version' , mock_obj = '1.1.1' )
244+ self .failUnless (yajl .check_yajl_version ())
245+ self .assertSameTrace ('' )
246+ self .mock ('yajl.yajl_version' , mock_obj = '1.1.0' )
247+ self .failIf (yajl .check_yajl_version ())
248+ self .assertSameTrace (
249+ "Called warnings.warn("
250+ "'Using Yajl-Py v1.1.1 with Yajl v1.1.0. "
251+ "It is advised to use the same Yajl-Py and Yajl versions',"
252+ "<type 'exceptions.RuntimeWarning'>, stacklevel=3)"
253+ )
254+
255+ def test_checkYajlPyAndYajlHaveSameVersion (self ):
256+ self .failUnless (yajl .check_yajl_version ())
0 commit comments