diff options
| author | Tom Christie | 2014-09-25 12:09:12 +0100 | 
|---|---|---|
| committer | Tom Christie | 2014-09-25 12:09:12 +0100 | 
| commit | b47ca158b9ba9733baad080e648d24b0465ec697 (patch) | |
| tree | 68721eeca909bf53dedea6d86f2894ec0eafad0a /tests/test_fields.py | |
| parent | 64632da3718f501cb8174243385d38b547c2fefd (diff) | |
| download | django-rest-framework-b47ca158b9ba9733baad080e648d24b0465ec697.tar.bz2 | |
Check for redundant  on SerializerMethodField
Diffstat (limited to 'tests/test_fields.py')
| -rw-r--r-- | tests/test_fields.py | 30 | 
1 files changed, 30 insertions, 0 deletions
| diff --git a/tests/test_fields.py b/tests/test_fields.py index ebb88d3d..003b4b8c 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -710,3 +710,33 @@ class TestMultipleChoiceField(FieldValues):              ('diesel', 'Diesel'),          ]      ) + + +# Tests for SerializerMethodField. +# -------------------------------- + +class TestSerializerMethodField: +    def test_serializer_method_field(self): +        class ExampleSerializer(serializers.Serializer): +            example_field = serializers.SerializerMethodField() + +            def get_example_field(self, obj): +                return 'ran get_example_field(%d)' % obj['example_field'] + +        serializer = ExampleSerializer({'example_field': 123}) +        assert serializer.data == { +            'example_field': 'ran get_example_field(123)' +        } + +    def test_redundant_method_name(self): +        class ExampleSerializer(serializers.Serializer): +            example_field = serializers.SerializerMethodField('get_example_field') + +        with pytest.raises(AssertionError) as exc_info: +            ExampleSerializer() +        assert str(exc_info.value) == ( +            "It is redundant to specify `get_example_field` on " +            "SerializerMethodField 'example_field' in serializer " +            "'ExampleSerializer', because it is the same as the default " +            "method name. Remove the `method_name` argument." +        ) | 
