(root)/
Python-3.11.7/
Lib/
test/
test_json/
__init__.py
       1  import os
       2  import json
       3  import doctest
       4  import unittest
       5  
       6  from test import support
       7  from test.support import import_helper
       8  
       9  
      10  # import json with and without accelerations
      11  cjson = import_helper.import_fresh_module('json', fresh=['_json'])
      12  pyjson = import_helper.import_fresh_module('json', blocked=['_json'])
      13  # JSONDecodeError is cached inside the _json module
      14  cjson.JSONDecodeError = cjson.decoder.JSONDecodeError = json.JSONDecodeError
      15  
      16  # create two base classes that will be used by the other tests
      17  class ESC[4;38;5;81mPyTest(ESC[4;38;5;149munittestESC[4;38;5;149m.ESC[4;38;5;149mTestCase):
      18      json = pyjson
      19      loads = staticmethod(pyjson.loads)
      20      dumps = staticmethod(pyjson.dumps)
      21      JSONDecodeError = staticmethod(pyjson.JSONDecodeError)
      22  
      23  @unittest.skipUnless(cjson, 'requires _json')
      24  class ESC[4;38;5;81mCTest(ESC[4;38;5;149munittestESC[4;38;5;149m.ESC[4;38;5;149mTestCase):
      25      if cjson is not None:
      26          json = cjson
      27          loads = staticmethod(cjson.loads)
      28          dumps = staticmethod(cjson.dumps)
      29          JSONDecodeError = staticmethod(cjson.JSONDecodeError)
      30  
      31  # test PyTest and CTest checking if the functions come from the right module
      32  class ESC[4;38;5;81mTestPyTest(ESC[4;38;5;149mPyTest):
      33      def test_pyjson(self):
      34          self.assertEqual(self.json.scanner.make_scanner.__module__,
      35                           'json.scanner')
      36          self.assertEqual(self.json.decoder.scanstring.__module__,
      37                           'json.decoder')
      38          self.assertEqual(self.json.encoder.encode_basestring_ascii.__module__,
      39                           'json.encoder')
      40  
      41  class ESC[4;38;5;81mTestCTest(ESC[4;38;5;149mCTest):
      42      def test_cjson(self):
      43          self.assertEqual(self.json.scanner.make_scanner.__module__, '_json')
      44          self.assertEqual(self.json.decoder.scanstring.__module__, '_json')
      45          self.assertEqual(self.json.encoder.c_make_encoder.__module__, '_json')
      46          self.assertEqual(self.json.encoder.encode_basestring_ascii.__module__,
      47                           '_json')
      48  
      49  
      50  def load_tests(loader, _, pattern):
      51      suite = unittest.TestSuite()
      52      for mod in (json, json.encoder, json.decoder):
      53          suite.addTest(doctest.DocTestSuite(mod))
      54      suite.addTest(TestPyTest('test_pyjson'))
      55      suite.addTest(TestCTest('test_cjson'))
      56  
      57      pkg_dir = os.path.dirname(__file__)
      58      return support.load_package_tests(pkg_dir, loader, suite, pattern)