From a322be8574fbd9bda6176dc13fbc06ba57a35503 Mon Sep 17 00:00:00 2001 From: agconti Date: Wed, 3 Feb 2016 15:33:59 -0500 Subject: [PATCH] test(tests/test_fields): added test for nested SerializerMethodFields --- tests/test_fields.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/tests/test_fields.py b/tests/test_fields.py index 43441c2e7..5f658aa12 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -1638,3 +1638,28 @@ class TestSerializerMethodField: "'ExampleSerializer', because it is the same as the default " "method name. Remove the `method_name` argument." ) + + def test_nested_serializer_method_field(self): + class NestedSerializer(serializers.Serializer): + example_field = serializers.SerializerMethodField() + + def get_example_field(self, obj): + return 'ran get_example_field(%d)' % obj['example_field'] + + class TestSerializer(serializers.Serializer): + nested = NestedSerializer() + + input_data = { + 'nested': { + 'example_field': 123, + } + } + expected_data = { + 'nested': { + 'example_field': 'ran get_example_field(123)', + } + } + + serializer = TestSerializer(data=input_data) + assert serializer.is_valid() + assert serializer.data == expected_data