Skip to content

Commit ba2ff2d

Browse files
committed
Reorganized test cases and separated into classes.
1 parent af50153 commit ba2ff2d

File tree

1 file changed

+48
-42
lines changed

1 file changed

+48
-42
lines changed

tests/test_yajl.py

Lines changed: 48 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)