From 43ddb3d56b159532b118d9c34ee00fea81bcc58f Mon Sep 17 00:00:00 2001 From: Illia Volochii Date: Mon, 1 Jan 2018 17:08:38 +0200 Subject: [PATCH] Dump as minified JSON as possible in its serializer (#658) --- elasticsearch/serializer.py | 7 ++++++- test_elasticsearch/test_serializer.py | 6 +++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/elasticsearch/serializer.py b/elasticsearch/serializer.py index 808db714..8f4ccf40 100644 --- a/elasticsearch/serializer.py +++ b/elasticsearch/serializer.py @@ -45,7 +45,12 @@ class JSONSerializer(object): return data try: - return json.dumps(data, default=self.default, ensure_ascii=False) + return json.dumps( + data, + default=self.default, + ensure_ascii=False, + separators=(',', ':'), + ) except (ValueError, TypeError) as e: raise SerializationError(data, e) diff --git a/test_elasticsearch/test_serializer.py b/test_elasticsearch/test_serializer.py index 5ab96e03..3c7925e5 100644 --- a/test_elasticsearch/test_serializer.py +++ b/test_elasticsearch/test_serializer.py @@ -12,15 +12,15 @@ from .test_cases import TestCase, SkipTest class TestJSONSerializer(TestCase): def test_datetime_serialization(self): - self.assertEquals('{"d": "2010-10-01T02:30:00"}', JSONSerializer().dumps({'d': datetime(2010, 10, 1, 2, 30)})) + self.assertEquals('{"d":"2010-10-01T02:30:00"}', JSONSerializer().dumps({'d': datetime(2010, 10, 1, 2, 30)})) def test_decimal_serialization(self): if sys.version_info[:2] == (2, 6): raise SkipTest("Float rounding is broken in 2.6.") - self.assertEquals('{"d": 3.8}', JSONSerializer().dumps({'d': Decimal('3.8')})) + self.assertEquals('{"d":3.8}', JSONSerializer().dumps({'d': Decimal('3.8')})) def test_uuid_serialization(self): - self.assertEquals('{"d": "00000000-0000-0000-0000-000000000003"}', JSONSerializer().dumps({'d': uuid.UUID('00000000-0000-0000-0000-000000000003')})) + self.assertEquals('{"d":"00000000-0000-0000-0000-000000000003"}', JSONSerializer().dumps({'d': uuid.UUID('00000000-0000-0000-0000-000000000003')})) def test_raises_serialization_error_on_dump_error(self): self.assertRaises(SerializationError, JSONSerializer().dumps, object())