File tree Expand file tree Collapse file tree 2 files changed +25
-4
lines changed Expand file tree Collapse file tree 2 files changed +25
-4
lines changed Original file line number Diff line number Diff line change @@ -242,11 +242,11 @@ def test_get_yajl_version_correctlyParsesYajlVersion(self):
242242 def test_check_yajl_version_warnsOnlyWhenMismatchedVersions (self ):
243243 import warnings
244244 self .mock ('warnings.warn' )
245- self .mock ('yajl.__version__' , mock_obj = '1.1.1' )
246- self .mock ('yajl.yajl_version' , mock_obj = '1.1.1' )
245+ self .mock ('yajl.wrapped. __version__' , mock_obj = '1.1.1' )
246+ self .mock ('yajl.wrapped. yajl_version' , mock_obj = '1.1.1' )
247247 self .assertTrue (yajl .check_yajl_version ())
248248 self .assertSameTrace ('' )
249- self .mock ('yajl.yajl_version' , mock_obj = '1.1.0' )
249+ self .mock ('yajl.wrapped. yajl_version' , mock_obj = '1.1.0' )
250250 self .assertFalse (yajl .check_yajl_version ())
251251 self .assertSameTrace (
252252 "Called warnings.warn("
@@ -257,3 +257,12 @@ def test_check_yajl_version_warnsOnlyWhenMismatchedVersions(self):
257257
258258 def test_checkYajlPyAndYajlHaveSameVersion (self ):
259259 self .assertTrue (yajl .check_yajl_version ())
260+
261+ def test_checkYajlPyRaisesImportErrorIfDumpsOrLoadsUsedAnyJSONHack (self ):
262+ for attr in 'dumps' , 'loads' :
263+ try :
264+ getattr (yajl , attr )
265+ except ImportError :
266+ pass
267+ else :
268+ self .fail ('No ImportError Raised for yajl.%s' % attr )
Original file line number Diff line number Diff line change 1414from yajl_parse import *
1515from yajl_gen import *
1616
17- __version__ = '2.0.5'
17+ __version__ = '2.0.5'
1818yajl_version = get_yajl_version ()
1919
2020def check_yajl_version ():
@@ -35,3 +35,15 @@ def check_yajl_version():
3535 return True
3636
3737check_yajl_version ()
38+
39+ # monkey patch yajl, because anyjson devs are slacking off,
40+ # and I got an issue request that I would like to help out.
41+ class Wrapper (object ):
42+ def __init__ (self , wrapped ):
43+ self .wrapped = wrapped
44+ def __getattr__ (self , name ):
45+ if name in ('dumps' , 'loads' ):
46+ raise ImportError ('this is not py-yajl ... anyjson!' )
47+ return getattr (self .wrapped , name )
48+
49+ sys .modules [__name__ ] = Wrapper (sys .modules [__name__ ])
You can’t perform that action at this time.
0 commit comments