Fixed #13182 -- Prevented trailing spaces in indented json output
Thanks Stéphane Raimbault for the report and the initial patch.
This commit is contained in:
parent
9885f07757
commit
3e34005b1b
|
@ -31,6 +31,9 @@ class Serializer(PythonSerializer):
|
||||||
self.json_kwargs = self.options.copy()
|
self.json_kwargs = self.options.copy()
|
||||||
self.json_kwargs.pop('stream', None)
|
self.json_kwargs.pop('stream', None)
|
||||||
self.json_kwargs.pop('fields', None)
|
self.json_kwargs.pop('fields', None)
|
||||||
|
if self.options.get('indent'):
|
||||||
|
# Prevent trailing spaces
|
||||||
|
self.json_kwargs['separators'] = (',', ': ')
|
||||||
self.stream.write("[")
|
self.stream.write("[")
|
||||||
|
|
||||||
def end_serialization(self):
|
def end_serialization(self):
|
||||||
|
|
|
@ -392,6 +392,31 @@ class JsonSerializerTestCase(SerializersTestBase, TestCase):
|
||||||
ret_list.append(obj_dict["fields"][field_name])
|
ret_list.append(obj_dict["fields"][field_name])
|
||||||
return ret_list
|
return ret_list
|
||||||
|
|
||||||
|
def test_indentation_whitespace(self):
|
||||||
|
Score.objects.create(score=5.0)
|
||||||
|
Score.objects.create(score=6.0)
|
||||||
|
qset = Score.objects.all()
|
||||||
|
|
||||||
|
s = serializers.json.Serializer()
|
||||||
|
self.assertEqual(s.serialize(qset, indent=2), """[
|
||||||
|
{
|
||||||
|
"pk": 1,
|
||||||
|
"model": "serializers.score",
|
||||||
|
"fields": {
|
||||||
|
"score": 5.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pk": 2,
|
||||||
|
"model": "serializers.score",
|
||||||
|
"fields": {
|
||||||
|
"score": 6.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
""")
|
||||||
|
|
||||||
|
|
||||||
class JsonSerializerTransactionTestCase(SerializersTransactionTestBase, TransactionTestCase):
|
class JsonSerializerTransactionTestCase(SerializersTransactionTestBase, TransactionTestCase):
|
||||||
serializer_name = "json"
|
serializer_name = "json"
|
||||||
fwd_ref_str = """[
|
fwd_ref_str = """[
|
||||||
|
|
Loading…
Reference in New Issue