2
from io import StringIO
3
from test.test_json import PyTest, CTest
8
h = [['blorpie'], ['whoops'], [], 'd-shtaeou', 'd-nthiouh', 'i-vhbjkhnth',
9
{'nifty': 87}, {'field': 'yes', 'morefield': False} ]
11
expect = textwrap.dedent("""\
28
\t\t"morefield": false
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)
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)
50
def test_indent0(self):
52
def check(indent, expected):
53
d1 = self.dumps(h, indent=indent)
54
self.assertEqual(d1, expected)
57
self.json.dump(h, sio, indent=indent)
58
self.assertEqual(sio.getvalue(), expected)
60
# indent=0 should emit newlines
61
check(0, '{\n"3": 1\n}')
62
# indent=None is more compact
63
check(None, '{"3": 1}')
66
class TestPyIndent(TestIndent, PyTest): pass
67
class TestCIndent(TestIndent, CTest): pass