Esempio n. 1
0
 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"')
Esempio n. 2
0
 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"')
Esempio n. 3
0
    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}')
Esempio n. 4
0
    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}')
Esempio n. 5
0
    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}')
Esempio n. 6
0
 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
Esempio n. 7
0
    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
Esempio n. 8
0
 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
Esempio n. 9
0
 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"')
Esempio n. 10
0
 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"')
Esempio n. 11
0
 def __init__(self, encoder=None, *args, **kwargs):
     super(JSONFormField, self).__init__(*args, **kwargs)
     self.encoder = encoder or DjbletsJSONEncoder(strip_datetime_ms=False)