diff options
| author | Tom Christie | 2012-11-20 15:30:30 -0800 | 
|---|---|---|
| committer | Tom Christie | 2012-11-20 15:30:30 -0800 | 
| commit | 8e8b23b6a9aece32ae5c028a72969777f1ddc7ae (patch) | |
| tree | 786a0048b9ab07cee7dbabab6574cec1ced4781a /rest_framework/tests | |
| parent | 3227a357cec2475b8295a67e9fd66f644ea5b0cd (diff) | |
| parent | 5f4c385a86b877217c1e1bc2eaff58206eabb747 (diff) | |
| download | django-rest-framework-8e8b23b6a9aece32ae5c028a72969777f1ddc7ae.tar.bz2 | |
Merge pull request #430 from j4mie/serializer-method-field
Serializer method field
Diffstat (limited to 'rest_framework/tests')
| -rw-r--r-- | rest_framework/tests/serializer.py | 34 | 
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):  | 
