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 # nolint 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_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_simply(self): from adrest.utils.serializer import BaseSerializer from .models import Task user = milkman.deliver('auth.User', username="******") data = [milkman.deliver(Task, user=user), milkman.deliver(Task, user=user), 28, 'string'] serializer = BaseSerializer(_exclude='fake', _include='username', user=dict( _fields='email')) self.assertEqual(serializer.options['_exclude'], set(['fake'])) out = serializer.to_simple(data) self.assertEqual(out[0]['fields']['username'], data[0].user.username) # Test m2o serialization serializer = BaseSerializer(_include="task_set", task_set=dict( _fields=[])) out = serializer.to_simple(user) self.assertEquals(len(out['fields']['task_set']), 2) for task in out['fields']['task_set']: self.assertEquals(task['fields']['user'], user.pk) self.assertTrue('title' in task['fields'].keys())
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)
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)