14b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannonimport textwrap
2e3992eb7430101f5bc6725d5f74290777a2ef939Ezio Melottifrom json.tests import PyTest, CTest
34b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon
44b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon
5e3992eb7430101f5bc6725d5f74290777a2ef939Ezio Melotticlass TestSeparators(object):
64b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon    def test_separators(self):
74b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon        h = [['blorpie'], ['whoops'], [], 'd-shtaeou', 'd-nthiouh', 'i-vhbjkhnth',
84b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon             {'nifty': 87}, {'field': 'yes', 'morefield': False} ]
94b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon
104b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon        expect = textwrap.dedent("""\
114b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon        [
124b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon          [
134b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon            "blorpie"
144b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon          ] ,
154b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon          [
164b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon            "whoops"
174b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon          ] ,
184b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon          [] ,
194b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon          "d-shtaeou" ,
204b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon          "d-nthiouh" ,
214b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon          "i-vhbjkhnth" ,
224b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon          {
234b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon            "nifty" : 87
244b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon          } ,
254b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon          {
264b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon            "field" : "yes" ,
274b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon            "morefield" : false
284b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon          }
294b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon        ]""")
304b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon
314b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon
32e3992eb7430101f5bc6725d5f74290777a2ef939Ezio Melotti        d1 = self.dumps(h)
33e3992eb7430101f5bc6725d5f74290777a2ef939Ezio Melotti        d2 = self.dumps(h, indent=2, sort_keys=True, separators=(' ,', ' : '))
344b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon
35e3992eb7430101f5bc6725d5f74290777a2ef939Ezio Melotti        h1 = self.loads(d1)
36e3992eb7430101f5bc6725d5f74290777a2ef939Ezio Melotti        h2 = self.loads(d2)
374b964f9c904744b7d7d88054e54a2e4ca8aeb395Brett Cannon
382623a37852153363335956afab010cb0beb7e74eEzio Melotti        self.assertEqual(h1, h)
392623a37852153363335956afab010cb0beb7e74eEzio Melotti        self.assertEqual(h2, h)
402623a37852153363335956afab010cb0beb7e74eEzio Melotti        self.assertEqual(d2, expect)
41e3992eb7430101f5bc6725d5f74290777a2ef939Ezio Melotti
42e3992eb7430101f5bc6725d5f74290777a2ef939Ezio Melotti
43e3992eb7430101f5bc6725d5f74290777a2ef939Ezio Melotticlass TestPySeparators(TestSeparators, PyTest): pass
44e3992eb7430101f5bc6725d5f74290777a2ef939Ezio Melotticlass TestCSeparators(TestSeparators, CTest): pass
45