def test_unsortable_keys(self):
with self.assertRaises(TypeError):
self.json.encoder.JSONEncoder(sort_keys=True).encode({'a': 1, 1: 'a'})
+
+ def test_current_indent_level(self):
+ enc = self.json.encoder.c_make_encoder(
+ markers=None,
+ default=str,
+ encoder=self.json.encoder.c_encode_basestring,
+ indent='\t',
+ key_separator=': ',
+ item_separator=', ',
+ sort_keys=False,
+ skipkeys=False,
+ allow_nan=False)
+ expected = (
+ '[\n'
+ '\t"spam", \n'
+ '\t{\n'
+ '\t\t"ham": "eggs"\n'
+ '\t}\n'
+ ']')
+ self.assertEqual(enc(['spam', {'ham': 'eggs'}], 0)[0], expected)
+ self.assertEqual(enc(['spam', {'ham': 'eggs'}], -3)[0], expected)
+ expected2 = (
+ '[\n'
+ '\t\t\t\t"spam", \n'
+ '\t\t\t\t{\n'
+ '\t\t\t\t\t"ham": "eggs"\n'
+ '\t\t\t\t}\n'
+ '\t\t\t]')
+ self.assertEqual(enc(['spam', {'ham': 'eggs'}], 3)[0], expected2)
+ self.assertRaises(TypeError, enc, ['spam', {'ham': 'eggs'}], 3.0)
+ self.assertRaises(TypeError, enc, ['spam', {'ham': 'eggs'}])
return NULL;
}
}
+ indent_level = 0;
if (encoder_listencode_obj(self, writer, obj, indent_level, indent_cache)) {
PyUnicodeWriter_Discard(writer);
Py_XDECREF(indent_cache);