MCPcopy Create free account
hub / github.com/simplejson/simplejson / TestEncode

Class TestEncode

simplejson/tests/test_speedups.py:32–96  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

30 self.assertRaises(ZeroDivisionError, test, u'{}')
31
32class TestEncode(TestCase):
33 @skip_if_speedups_missing
34 def test_make_encoder(self):
35 self.assertRaises(
36 TypeError,
37 encoder.c_make_encoder,
38 None,
39 ("\xCD\x7D\x3D\x4E\x12\x4C\xF9\x79\xD7"
40 "\x52\xBA\x82\xF2\x27\x4A\x7D\xA0\xCA\x75"),
41 None
42 )
43
44 @skip_if_speedups_missing
45 def test_bad_str_encoder(self):
46 # Issue #31505: There shouldn't be an assertion failure in case
47 # c_make_encoder() receives a bad encoder() argument.
48 import decimal
49 def bad_encoder1(*args):
50 return None
51 enc = encoder.c_make_encoder(
52 None, lambda obj: str(obj),
53 bad_encoder1, None, ': ', ', ',
54 False, False, False, {}, False, False, False,
55 None, None, 'utf-8', False, False, decimal.Decimal, False)
56 self.assertRaises(TypeError, enc, 'spam', 4)
57 self.assertRaises(TypeError, enc, {'spam': 42}, 4)
58
59 def bad_encoder2(*args):
60 1/0
61 enc = encoder.c_make_encoder(
62 None, lambda obj: str(obj),
63 bad_encoder2, None, ': ', ', ',
64 False, False, False, {}, False, False, False,
65 None, None, 'utf-8', False, False, decimal.Decimal, False)
66 self.assertRaises(ZeroDivisionError, enc, 'spam', 4)
67
68 @skip_if_speedups_missing
69 def test_bad_bool_args(self):
70 def test(name):
71 encoder.JSONEncoder(**{name: BadBool()}).encode({})
72 self.assertRaises(ZeroDivisionError, test, 'skipkeys')
73 self.assertRaises(ZeroDivisionError, test, 'ensure_ascii')
74 self.assertRaises(ZeroDivisionError, test, 'check_circular')
75 self.assertRaises(ZeroDivisionError, test, 'allow_nan')
76 self.assertRaises(ZeroDivisionError, test, 'sort_keys')
77 self.assertRaises(ZeroDivisionError, test, 'use_decimal')
78 self.assertRaises(ZeroDivisionError, test, 'namedtuple_as_object')
79 self.assertRaises(ZeroDivisionError, test, 'tuple_as_array')
80 self.assertRaises(ZeroDivisionError, test, 'bigint_as_string')
81 self.assertRaises(ZeroDivisionError, test, 'for_json')
82 self.assertRaises(ZeroDivisionError, test, 'ignore_nan')
83 self.assertRaises(ZeroDivisionError, test, 'iterable_as_array')
84
85 @skip_if_speedups_missing
86 def test_int_as_string_bitcount_overflow(self):
87 long_count = long_type(2)**32+31
88 def test():
89 encoder.JSONEncoder(int_as_string_bitcount=long_count).encode(0)

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…