コード例 #1
0
    def test_base_types(self):
        """ Testing serialization of base types.
        """
        from adrest.utils.serializer import BaseSerializer
        try:
            from collections import OrderedDict
        except ImportError:
            from ordereddict import OrderedDict  # noqa

        from datetime import datetime
        from decimal import Decimal

        serializer = BaseSerializer()
        data = dict(string_='test',
                    unicode_=unicode('test'),
                    datetime_=datetime(2007, 01, 01),
                    odict_=OrderedDict(value=1),
                    dict_=dict(list_=[1, 2.35, Decimal(3), False]))

        value = serializer.serialize(data)
        self.assertEqual(
            value,
            dict(string_=u'test',
                 unicode_=u'test',
                 datetime_='2007-01-01T00:00:00',
                 odict_=dict(value=1),
                 dict_=dict(list_=[1, 2.35, 3.0, False])))
コード例 #2
0
    def test_django_model(self):
        from adrest.utils.serializer import BaseSerializer

        pirate = mixer.blend('core.pirate', name='Billy')
        data = [
            mixer.blend('core.boat', pirate=pirate),
            mixer.blend('core.boat', pirate=pirate), 28, 'string'
        ]

        serializer = BaseSerializer(
            exclude='fake',
            include='pk',
            related=dict(pirate=dict(fields='character')),
        )
        self.assertEqual(serializer.model_options['exclude'], set(['fake']))

        out = serializer.to_simple(data, **serializer.model_options)
        self.assertTrue(out[0]['fields']['pk'])
        self.assertEqual(out[0]['fields']['pirate']['fields']['character'],
                         data[0].pirate.character)

        # Test m2o serialization
        serializer = BaseSerializer(
            include="boat_set",
            related=dict(boat_set=dict(fields=[])),
        )
        out = serializer.to_simple(pirate, **serializer.model_options)

        self.assertEquals(len(out['fields']['boat_set']), 2)
        for boat in out['fields']['boat_set']:
            self.assertEquals(boat['fields']['pirate'], pirate.pk)
            self.assertTrue('title' in boat['fields'].keys())

        out = serializer.to_simple(pirate)
        self.assertTrue('model' in out)

        out = serializer.to_simple(pirate, include=['boat_set'])
        self.assertTrue(out['fields']['boat_set'])
        self.assertEqual(len(list(out['fields']['boat_set'])), 2)