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])))
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)