17db96d56Sopenharmony_ciimport textwrap 27db96d56Sopenharmony_cifrom test.test_json import PyTest, CTest 37db96d56Sopenharmony_ci 47db96d56Sopenharmony_ci 57db96d56Sopenharmony_ciclass TestSeparators: 67db96d56Sopenharmony_ci def test_separators(self): 77db96d56Sopenharmony_ci h = [['blorpie'], ['whoops'], [], 'd-shtaeou', 'd-nthiouh', 'i-vhbjkhnth', 87db96d56Sopenharmony_ci {'nifty': 87}, {'field': 'yes', 'morefield': False} ] 97db96d56Sopenharmony_ci 107db96d56Sopenharmony_ci expect = textwrap.dedent("""\ 117db96d56Sopenharmony_ci [ 127db96d56Sopenharmony_ci [ 137db96d56Sopenharmony_ci "blorpie" 147db96d56Sopenharmony_ci ] , 157db96d56Sopenharmony_ci [ 167db96d56Sopenharmony_ci "whoops" 177db96d56Sopenharmony_ci ] , 187db96d56Sopenharmony_ci [] , 197db96d56Sopenharmony_ci "d-shtaeou" , 207db96d56Sopenharmony_ci "d-nthiouh" , 217db96d56Sopenharmony_ci "i-vhbjkhnth" , 227db96d56Sopenharmony_ci { 237db96d56Sopenharmony_ci "nifty" : 87 247db96d56Sopenharmony_ci } , 257db96d56Sopenharmony_ci { 267db96d56Sopenharmony_ci "field" : "yes" , 277db96d56Sopenharmony_ci "morefield" : false 287db96d56Sopenharmony_ci } 297db96d56Sopenharmony_ci ]""") 307db96d56Sopenharmony_ci 317db96d56Sopenharmony_ci 327db96d56Sopenharmony_ci d1 = self.dumps(h) 337db96d56Sopenharmony_ci d2 = self.dumps(h, indent=2, sort_keys=True, separators=(' ,', ' : ')) 347db96d56Sopenharmony_ci 357db96d56Sopenharmony_ci h1 = self.loads(d1) 367db96d56Sopenharmony_ci h2 = self.loads(d2) 377db96d56Sopenharmony_ci 387db96d56Sopenharmony_ci self.assertEqual(h1, h) 397db96d56Sopenharmony_ci self.assertEqual(h2, h) 407db96d56Sopenharmony_ci self.assertEqual(d2, expect) 417db96d56Sopenharmony_ci 427db96d56Sopenharmony_ci def test_illegal_separators(self): 437db96d56Sopenharmony_ci h = {1: 2, 3: 4} 447db96d56Sopenharmony_ci self.assertRaises(TypeError, self.dumps, h, separators=(b', ', ': ')) 457db96d56Sopenharmony_ci self.assertRaises(TypeError, self.dumps, h, separators=(', ', b': ')) 467db96d56Sopenharmony_ci self.assertRaises(TypeError, self.dumps, h, separators=(b', ', b': ')) 477db96d56Sopenharmony_ci 487db96d56Sopenharmony_ci 497db96d56Sopenharmony_ciclass TestPySeparators(TestSeparators, PyTest): pass 507db96d56Sopenharmony_ciclass TestCSeparators(TestSeparators, CTest): pass 51