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.pop('stream', None)
|
||||
self.json_kwargs.pop('fields', None)
|
||||
if self.options.get('indent'):
|
||||
# Prevent trailing spaces
|
||||
self.json_kwargs['separators'] = (',', ': ')
|
||||
self.stream.write("[")
|
||||
|
||||
def end_serialization(self):
|
||||
|
|
|
@ -392,6 +392,31 @@ class JsonSerializerTestCase(SerializersTestBase, TestCase):
|
|||
ret_list.append(obj_dict["fields"][field_name])
|
||||
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):
|
||||
serializer_name = "json"
|
||||
fwd_ref_str = """[
|
||||
|
|
Loading…
Reference in New Issue