aboutsummaryrefslogtreecommitdiffstats
path: root/djangorestframework/tests/serializer.py
diff options
context:
space:
mode:
authorTom Christie2012-10-30 14:32:31 +0000
committerTom Christie2012-10-30 14:32:31 +0000
commit9b30dab4f772f67a626e176dc4fae0a3ef9c2c81 (patch)
treeca138abf4792f58ffa28684f784f201ee1eef6d7 /djangorestframework/tests/serializer.py
parent7e5b1501b5cede61a9391fb1a751d2ebcdb37031 (diff)
parent4e7805cb24d73e7f706318b5e5a27e3f9ba39d14 (diff)
downloaddjango-rest-framework-9b30dab4f772f67a626e176dc4fae0a3ef9c2c81.tar.bz2
Merge branch 'restframework2' into rest-framework-2-merge2.0.0
Conflicts: .gitignore .travis.yml AUTHORS README.rst djangorestframework/mixins.py djangorestframework/renderers.py djangorestframework/resources.py djangorestframework/serializer.py djangorestframework/templates/djangorestframework/base.html djangorestframework/templates/djangorestframework/login.html djangorestframework/templatetags/add_query_param.py djangorestframework/tests/accept.py djangorestframework/tests/authentication.py djangorestframework/tests/content.py djangorestframework/tests/reverse.py djangorestframework/tests/serializer.py djangorestframework/views.py docs/examples.rst docs/examples/blogpost.rst docs/examples/modelviews.rst docs/examples/objectstore.rst docs/examples/permissions.rst docs/examples/pygments.rst docs/examples/views.rst docs/howto/alternativeframeworks.rst docs/howto/mixin.rst docs/howto/reverse.rst docs/howto/usingurllib2.rst docs/index.rst docs/topics/release-notes.md examples/sandbox/views.py rest_framework/__init__.py rest_framework/compat.py rest_framework/utils/breadcrumbs.py setup.py
Diffstat (limited to 'djangorestframework/tests/serializer.py')
-rw-r--r--djangorestframework/tests/serializer.py160
1 files changed, 0 insertions, 160 deletions
diff --git a/djangorestframework/tests/serializer.py b/djangorestframework/tests/serializer.py
deleted file mode 100644
index 1a4eaa10..00000000
--- a/djangorestframework/tests/serializer.py
+++ /dev/null
@@ -1,160 +0,0 @@
-"""Tests for the resource module"""
-from django.db import models
-from django.test import TestCase
-from django.utils.translation import ugettext_lazy
-from djangorestframework.serializer import Serializer
-
-import datetime
-import decimal
-
-class TestObjectToData(TestCase):
- """
- Tests for the Serializer class.
- """
-
- def setUp(self):
- self.serializer = Serializer()
- self.serialize = self.serializer.serialize
-
- def test_decimal(self):
- """Decimals need to be converted to a string representation."""
- self.assertEquals(self.serialize(decimal.Decimal('1.5')), decimal.Decimal('1.5'))
-
- def test_function(self):
- """Functions with no arguments should be called."""
- def foo():
- return 1
- self.assertEquals(self.serialize(foo), 1)
-
- def test_method(self):
- """Methods with only a ``self`` argument should be called."""
- class Foo(object):
- def foo(self):
- return 1
- self.assertEquals(self.serialize(Foo().foo), 1)
-
- def test_datetime(self):
- """datetime objects are left as-is."""
- now = datetime.datetime.now()
- self.assertEquals(self.serialize(now), now)
-
- def test_dict_method_name_collision(self):
- """dict with key that collides with dict method name"""
- self.assertEquals(self.serialize({'items': 'foo'}), {'items': u'foo'})
- self.assertEquals(self.serialize({'keys': 'foo'}), {'keys': u'foo'})
- self.assertEquals(self.serialize({'values': 'foo'}), {'values': u'foo'})
-
- def test_ugettext_lazy(self):
- self.assertEquals(self.serialize(ugettext_lazy('foobar')), u'foobar')
-
-
-class TestFieldNesting(TestCase):
- """
- Test nesting the fields in the Serializer class
- """
- def setUp(self):
- self.serializer = Serializer()
- self.serialize = self.serializer.serialize
-
- class M1(models.Model):
- field1 = models.CharField(max_length=256)
- field2 = models.CharField(max_length=256)
-
- class M2(models.Model):
- field = models.OneToOneField(M1)
-
- class M3(models.Model):
- field = models.ForeignKey(M1)
-
- self.m1 = M1(field1='foo', field2='bar')
- self.m2 = M2(field=self.m1)
- self.m3 = M3(field=self.m1)
-
-
- def test_tuple_nesting(self):
- """
- Test tuple nesting on `fields` attr
- """
- class SerializerM2(Serializer):
- fields = (('field', ('field1',)),)
-
- class SerializerM3(Serializer):
- fields = (('field', ('field2',)),)
-
- self.assertEqual(SerializerM2().serialize(self.m2), {'field': {'field1': u'foo'}})
- self.assertEqual(SerializerM3().serialize(self.m3), {'field': {'field2': u'bar'}})
-
-
- def test_serializer_class_nesting(self):
- """
- Test related model serialization
- """
- class NestedM2(Serializer):
- fields = ('field1', )
-
- class NestedM3(Serializer):
- fields = ('field2', )
-
- class SerializerM2(Serializer):
- fields = [('field', NestedM2)]
-
- class SerializerM3(Serializer):
- fields = [('field', NestedM3)]
-
- self.assertEqual(SerializerM2().serialize(self.m2), {'field': {'field1': u'foo'}})
- self.assertEqual(SerializerM3().serialize(self.m3), {'field': {'field2': u'bar'}})
-
- # def test_serializer_no_fields(self):
- # """
- # Test related serializer works when the fields attr isn't present. Fix for
- # #178.
- # """
- # class NestedM2(Serializer):
- # fields = ('field1', )
-
- # class NestedM3(Serializer):
- # fields = ('field2', )
-
- # class SerializerM2(Serializer):
- # include = [('field', NestedM2)]
- # exclude = ('id', )
-
- # class SerializerM3(Serializer):
- # fields = [('field', NestedM3)]
-
- # self.assertEqual(SerializerM2().serialize(self.m2), {'field': {'field1': u'foo'}})
- # self.assertEqual(SerializerM3().serialize(self.m3), {'field': {'field2': u'bar'}})
-
- def test_serializer_classname_nesting(self):
- """
- Test related model serialization
- """
- class SerializerM2(Serializer):
- fields = [('field', 'NestedM2')]
-
- class SerializerM3(Serializer):
- fields = [('field', 'NestedM3')]
-
- class NestedM2(Serializer):
- fields = ('field1', )
-
- class NestedM3(Serializer):
- fields = ('field2', )
-
- self.assertEqual(SerializerM2().serialize(self.m2), {'field': {'field1': u'foo'}})
- self.assertEqual(SerializerM3().serialize(self.m3), {'field': {'field2': u'bar'}})
-
- def test_serializer_overridden_hook_method(self):
- """
- Test serializing a model instance which overrides a class method on the
- serializer. Checks for correct behaviour in odd edge case.
- """
- class SerializerM2(Serializer):
- fields = ('overridden', )
-
- def overridden(self):
- return False
-
- self.m2.overridden = True
- self.assertEqual(SerializerM2().serialize_model(self.m2),
- {'overridden': True})