/
opt
/
imunify360
/
venv
/
lib
/
python3.11
/
site-packages
/
simplejson
/
tests
/
/opt/imunify360/venv/lib/python3.11/site-packages/simplejson/tests
mkdir
upload
Name
Size
Mode
Actions
__pycache__/
-
0755
rm
test_bigint_as_string.py
2238
0644
edit
dl
rm
test_bitsize_int_as_string.py
4535
0644
edit
dl
rm
test_check_circular.py
1579
0644
edit
dl
rm
test_decimal.py
2544
0644
edit
dl
rm
test_decode.py
7470
0644
edit
dl
rm
test_default.py
221
0644
edit
dl
rm
test_dump.py
17600
0644
edit
dl
rm
test_encode_basestring_ascii.py
2337
0644
edit
dl
rm
test_encode_for_html.py
1515
0644
edit
dl
rm
test_errors.py
3503
0644
edit
dl
rm
test_fail.py
6454
0644
edit
dl
rm
test_float.py
1983
0644
edit
dl
rm
test_for_json.py
4126
0644
edit
dl
rm
test_free_threading.py
3169
0644
edit
dl
rm
test_indent.py
2568
0644
edit
dl
rm
test_item_sort_key.py
1376
0644
edit
dl
rm
test_iterable.py
2580
0644
edit
dl
rm
test_namedtuple.py
7391
0644
edit
dl
rm
test_pass1.py
1746
0644
edit
dl
rm
test_pass2.py
386
0644
edit
dl
rm
test_pass3.py
482
0644
edit
dl
rm
test_raw_json.py
1062
0644
edit
dl
rm
test_recursion.py
1679
0644
edit
dl
rm
test_scanstring.py
12098
0644
edit
dl
rm
test_separators.py
942
0644
edit
dl
rm
test_speedups.py
12590
0644
edit
dl
rm
test_str_subclass.py
740
0644
edit
dl
rm
test_subclass.py
1124
0644
edit
dl
rm
test_subinterpreters.py
4639
0644
edit
dl
rm
test_tool.py
2996
0644
edit
dl
rm
test_tuple.py
1831
0644
edit
dl
rm
test_unicode.py
7056
0644
edit
dl
rm
_cibw_runner.py
173
0644
edit
dl
rm
_helpers.py
405
0644
edit
dl
rm
__init__.py
2917
0644
edit
dl
rm
Edit:
/opt/imunify360/venv/lib/python3.11/site-packages/simplejson/tests/test_free_threading.py
(3169B)
"""Tests that exercise the C extension from multiple threads. These tests pass on any Python build but their real purpose is to catch data races on free-threaded builds (PEP 703) where the GIL is disabled. The test_free_threading CI job runs these with ``PYTHON_GIL=0`` on a free-threaded interpreter. """ import sys import threading from unittest import TestCase import simplejson from simplejson.tests._helpers import skip_if_speedups_missing class TestFreeThreading(TestCase): """Exercise the C extension from multiple threads simultaneously.""" N_THREADS = 8 N_ITER = 500 def _run_threads(self, worker): if sys.platform == 'emscripten': self.skipTest("threads not available on Emscripten") errors = [] def wrapped(): try: worker() except BaseException as e: errors.append(e) threads = [threading.Thread(target=wrapped) for _ in range(self.N_THREADS)] for t in threads: t.start() for t in threads: t.join() if errors: raise errors[0] @skip_if_speedups_missing def test_concurrent_encode(self): data = { "numbers": list(range(64)), "nested": {"key": "value", "list": [1, 2.5, None, True, False]}, "string": "hello \u00e9 world", } expected = simplejson.dumps(data, sort_keys=True) def worker(): for _ in range(self.N_ITER): self.assertEqual( simplejson.dumps(data, sort_keys=True), expected) self._run_threads(worker) @skip_if_speedups_missing def test_concurrent_decode(self): raw = ( '{"numbers": [1, 2, 3, 4, 5], ' '"nested": {"a": "b", "c": [true, false, null]}, ' '"string": "hello"}' ) expected = simplejson.loads(raw) def worker(): for _ in range(self.N_ITER): self.assertEqual(simplejson.loads(raw), expected) self._run_threads(worker) @skip_if_speedups_missing def test_concurrent_encode_decode(self): """Mix encode and decode on the same data across threads.""" data = {"items": list(range(32)), "flag": True, "name": "mix"} raw = simplejson.dumps(data, sort_keys=True) def worker(): for _ in range(self.N_ITER): s = simplejson.dumps(data, sort_keys=True) self.assertEqual(s, raw) self.assertEqual(simplejson.loads(s), data) self._run_threads(worker) @skip_if_speedups_missing def test_shared_encoder_instance(self): """A single encoder/decoder instance used by many threads.""" enc = simplejson.JSONEncoder(sort_keys=True) dec = simplejson.JSONDecoder() data = {"a": 1, "b": [1, 2, 3], "c": {"nested": True}} raw = enc.encode(data) def worker(): for _ in range(self.N_ITER): self.assertEqual(enc.encode(data), raw) self.assertEqual(dec.decode(raw), data) self._run_threads(worker)
Save
cmd:
run