(root)/
Python-3.11.7/
Lib/
test/
test_json/
test_indent.py
       1  import textwrap
       2  from io import StringIO
       3  from test.test_json import PyTest, CTest
       4  
       5  
       6  class ESC[4;38;5;81mTestIndent:
       7      def test_indent(self):
       8          h = [['blorpie'], ['whoops'], [], 'd-shtaeou', 'd-nthiouh', 'i-vhbjkhnth',
       9               {'nifty': 87}, {'field': 'yes', 'morefield': False} ]
      10  
      11          expect = textwrap.dedent("""\
      12          [
      13          \t[
      14          \t\t"blorpie"
      15          \t],
      16          \t[
      17          \t\t"whoops"
      18          \t],
      19          \t[],
      20          \t"d-shtaeou",
      21          \t"d-nthiouh",
      22          \t"i-vhbjkhnth",
      23          \t{
      24          \t\t"nifty": 87
      25          \t},
      26          \t{
      27          \t\t"field": "yes",
      28          \t\t"morefield": false
      29          \t}
      30          ]""")
      31  
      32          d1 = self.dumps(h)
      33          d2 = self.dumps(h, indent=2, sort_keys=True, separators=(',', ': '))
      34          d3 = self.dumps(h, indent='\t', sort_keys=True, separators=(',', ': '))
      35          d4 = self.dumps(h, indent=2, sort_keys=True)
      36          d5 = self.dumps(h, indent='\t', sort_keys=True)
      37  
      38          h1 = self.loads(d1)
      39          h2 = self.loads(d2)
      40          h3 = self.loads(d3)
      41  
      42          self.assertEqual(h1, h)
      43          self.assertEqual(h2, h)
      44          self.assertEqual(h3, h)
      45          self.assertEqual(d2, expect.expandtabs(2))
      46          self.assertEqual(d3, expect)
      47          self.assertEqual(d4, d2)
      48          self.assertEqual(d5, d3)
      49  
      50      def test_indent0(self):
      51          h = {3: 1}
      52          def check(indent, expected):
      53              d1 = self.dumps(h, indent=indent)
      54              self.assertEqual(d1, expected)
      55  
      56              sio = StringIO()
      57              self.json.dump(h, sio, indent=indent)
      58              self.assertEqual(sio.getvalue(), expected)
      59  
      60          # indent=0 should emit newlines
      61          check(0, '{\n"3": 1\n}')
      62          # indent=None is more compact
      63          check(None, '{"3": 1}')
      64  
      65  
      66  class ESC[4;38;5;81mTestPyIndent(ESC[4;38;5;149mTestIndent, ESC[4;38;5;149mPyTest): pass
      67  class ESC[4;38;5;81mTestCIndent(ESC[4;38;5;149mTestIndent, ESC[4;38;5;149mCTest): pass