Serialization error tests
This commit is contained in:
@@ -12,13 +12,13 @@ class JSONSerializer(object):
|
|||||||
def loads(self, s):
|
def loads(self, s):
|
||||||
try:
|
try:
|
||||||
return json.loads(s)
|
return json.loads(s)
|
||||||
except ValueError as e:
|
except (ValueError, TypeError) as e:
|
||||||
raise SerializationError(e)
|
raise SerializationError(e)
|
||||||
|
|
||||||
def dumps(self, data):
|
def dumps(self, data):
|
||||||
try:
|
try:
|
||||||
return json.dumps(data, default=self.default)
|
return json.dumps(data, default=self.default)
|
||||||
except ValueError as e:
|
except (ValueError, TypeError) as e:
|
||||||
raise SerializationError(e)
|
raise SerializationError(e)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,16 @@ from datetime import datetime
|
|||||||
from unittest import TestCase
|
from unittest import TestCase
|
||||||
|
|
||||||
from elasticsearch.serializer import JSONSerializer
|
from elasticsearch.serializer import JSONSerializer
|
||||||
|
from elasticsearch.exceptions import SerializationError
|
||||||
|
|
||||||
class TestJSONSerializer(TestCase):
|
class TestJSONSerializer(TestCase):
|
||||||
def test_datetime_serialization(self):
|
def test_datetime_serialization(self):
|
||||||
self.assertEquals(u'{"d": "2010-10-01T02:30:00"}', JSONSerializer().dumps({'d': datetime(2010, 10, 1, 2, 30)}))
|
self.assertEquals(u'{"d": "2010-10-01T02:30:00"}', JSONSerializer().dumps({'d': datetime(2010, 10, 1, 2, 30)}))
|
||||||
|
|
||||||
|
def test_raises_serialization_error_on_dump_error(self):
|
||||||
|
self.assertRaises(SerializationError, JSONSerializer().dumps, object())
|
||||||
|
|
||||||
|
def test_raises_serialization_error_on_load_error(self):
|
||||||
|
self.assertRaises(SerializationError, JSONSerializer().loads, object())
|
||||||
|
self.assertRaises(SerializationError, JSONSerializer().loads, '')
|
||||||
|
self.assertRaises(SerializationError, JSONSerializer().loads, '{{')
|
||||||
|
|||||||
Reference in New Issue
Block a user