1import textwrap 2from test.test_json import PyTest, CTest 3 4 5class TestSeparators: 6 def test_separators(self): 7 h = [['blorpie'], ['whoops'], [], 'd-shtaeou', 'd-nthiouh', 'i-vhbjkhnth', 8 {'nifty': 87}, {'field': 'yes', 'morefield': False} ] 9 10 expect = textwrap.dedent("""\ 11 [ 12 [ 13 "blorpie" 14 ] , 15 [ 16 "whoops" 17 ] , 18 [] , 19 "d-shtaeou" , 20 "d-nthiouh" , 21 "i-vhbjkhnth" , 22 { 23 "nifty" : 87 24 } , 25 { 26 "field" : "yes" , 27 "morefield" : false 28 } 29 ]""") 30 31 32 d1 = self.dumps(h) 33 d2 = self.dumps(h, indent=2, sort_keys=True, separators=(' ,', ' : ')) 34 35 h1 = self.loads(d1) 36 h2 = self.loads(d2) 37 38 self.assertEqual(h1, h) 39 self.assertEqual(h2, h) 40 self.assertEqual(d2, expect) 41 42 def test_illegal_separators(self): 43 h = {1: 2, 3: 4} 44 self.assertRaises(TypeError, self.dumps, h, separators=(b', ', ': ')) 45 self.assertRaises(TypeError, self.dumps, h, separators=(', ', b': ')) 46 self.assertRaises(TypeError, self.dumps, h, separators=(b', ', b': ')) 47 48 49class TestPySeparators(TestSeparators, PyTest): pass 50class TestCSeparators(TestSeparators, CTest): pass 51