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