import sys import unittest from unittest import TestCase from simplejson import encoder, scanner def has_speedups(): return encoder.c_make_encoder is not None def skip_if_speedups_missing(func): def wrapper(*args, **kwargs): if not has_speedups(): if hasattr(unittest, 'SkipTest'): raise unittest.SkipTest("C Extension not available") else: sys.stdout.write("C Extension not available") return return func(*args, **kwargs) return wrapper class TestDecode(TestCase): @skip_if_speedups_missing def test_make_scanner(self): self.assertRaises(AttributeError, scanner.c_make_scanner, 1) @skip_if_speedups_missing def test_make_encoder(self): self.assertRaises( TypeError, encoder.c_make_encoder, None, ("\xCD\x7D\x3D\x4E\x12\x4C\xF9\x79\xD7" "\x52\xBA\x82\xF2\x27\x4A\x7D\xA0\xCA\x75"), None )