def test_datetime_with_strip_ms(self): """Testing DjbletsJSONENcoder.encode with datetimes when using strip_datetime_ms=False """ encoder = DjbletsJSONEncoder(strip_datetime_ms=False) self.assertEqual( encoder.encode(datetime(2016, 8, 26, 3, 3, 26, 123456)), '"2016-08-26T03:03:26.123"')
def test_datetime_with_strip_ms(self): """Testing DjbletsJSONENcoder.encode with datetimes when using strip_datetime_ms=False """ encoder = DjbletsJSONEncoder(strip_datetime_ms=False) self.assertEqual( encoder.encode(datetime.datetime(2016, 8, 26, 3, 3, 26, 123456)), '"2016-08-26T03:03:26.123"')
def test_model_to_json(self): """Testing DjbletsJSONEncoder.encode for a Model""" class TestModel(models.Model): foo = models.IntegerField() def to_json(self): return {"foo": self.foo} obj = TestModel(foo=1) encoder = DjbletsJSONEncoder() self.assertEqual(encoder.encode(obj), '{"foo": 1}')
def test_object_to_json(self): """Testing DjbletsJSONEncoder.encode for an object with a to_json() method """ class TestObject(object): def to_json(self): return { 'foo': 1, } obj = TestObject() encoder = DjbletsJSONEncoder() self.assertEqual(encoder.encode(obj), '{"foo": 1}')
def __init__(self, verbose_name=None, name=None, encoder=DjbletsJSONEncoder(strip_datetime_ms=False), **kwargs): blank = kwargs.pop('blank', True) models.TextField.__init__(self, verbose_name, name, blank=blank, **kwargs) self.encoder = encoder
def encode(self, o, *args, **kwargs): if isinstance(o, QuerySet): return list(o) else: calling_resource = kwargs.pop('calling_resource', None) if calling_resource: serializer = calling_resource.get_serializer_for_object(o) else: from djblets.webapi.resources import get_resource_for_object serializer = get_resource_for_object(o) if serializer: return serializer.serialize_object(o, *args, **kwargs) else: try: return DjbletsJSONEncoder().default(o) except TypeError: return None
def encode(self, o, *args, **kwargs): if isinstance(o, QuerySet): return list(o) elif isinstance(o, User): return { 'id': o.id, 'username': o.username, 'first_name': o.first_name, 'last_name': o.last_name, 'fullname': o.get_full_name(), 'email': o.email, 'url': o.get_absolute_url(), } elif isinstance(o, Group): return { 'id': o.id, 'name': o.name, } else: try: return DjbletsJSONEncoder().default(o) except TypeError: return None
def test_datetime(self): """Testing DjbletsJSONENcoder.encode with datetimes""" encoder = DjbletsJSONEncoder() self.assertEqual( encoder.encode(datetime.datetime(2016, 8, 26, 3, 3, 26, 123456)), '"2016-08-26T03:03:26"')
def test_datetime(self): """Testing DjbletsJSONENcoder.encode with datetimes""" encoder = DjbletsJSONEncoder() self.assertEqual( encoder.encode(datetime(2016, 8, 26, 3, 3, 26, 123456)), '"2016-08-26T03:03:26"')
def __init__(self, encoder=None, *args, **kwargs): super(JSONFormField, self).__init__(*args, **kwargs) self.encoder = encoder or DjbletsJSONEncoder(strip_datetime_ms=False)