aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/tests/serializer.py
diff options
context:
space:
mode:
authorTom Christie2012-11-20 15:30:30 -0800
committerTom Christie2012-11-20 15:30:30 -0800
commit8e8b23b6a9aece32ae5c028a72969777f1ddc7ae (patch)
tree786a0048b9ab07cee7dbabab6574cec1ced4781a /rest_framework/tests/serializer.py
parent3227a357cec2475b8295a67e9fd66f644ea5b0cd (diff)
parent5f4c385a86b877217c1e1bc2eaff58206eabb747 (diff)
downloaddjango-rest-framework-8e8b23b6a9aece32ae5c028a72969777f1ddc7ae.tar.bz2
Merge pull request #430 from j4mie/serializer-method-field
Serializer method field
Diffstat (limited to 'rest_framework/tests/serializer.py')
-rw-r--r--rest_framework/tests/serializer.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/rest_framework/tests/serializer.py b/rest_framework/tests/serializer.py
index d522ef97..656bc1dd 100644
--- a/rest_framework/tests/serializer.py
+++ b/rest_framework/tests/serializer.py
@@ -522,6 +522,40 @@ class ManyRelatedTests(TestCase):
self.assertEqual(serializer.data, expected)
+class SerializerMethodFieldTests(TestCase):
+ def setUp(self):
+
+ class BoopSerializer(serializers.Serializer):
+ beep = serializers.SerializerMethodField('get_beep')
+ boop = serializers.Field()
+ boop_count = serializers.SerializerMethodField('get_boop_count')
+
+ def get_beep(self, obj):
+ return 'hello!'
+
+ def get_boop_count(self, obj):
+ return len(obj.boop)
+
+ self.serializer_class = BoopSerializer
+
+ def test_serializer_method_field(self):
+
+ class MyModel(object):
+ boop = ['a', 'b', 'c']
+
+ source_data = MyModel()
+
+ serializer = self.serializer_class(source_data)
+
+ expected = {
+ 'beep': u'hello!',
+ 'boop': [u'a', u'b', u'c'],
+ 'boop_count': 3,
+ }
+
+ self.assertEqual(serializer.data, expected)
+
+
# Test for issue #324
class BlankFieldTests(TestCase):
def setUp(self):