diff options
| author | Tom Christie | 2013-06-17 15:09:36 +0100 | 
|---|---|---|
| committer | Tom Christie | 2013-06-17 15:09:36 +0100 | 
| commit | 4ad10949687c271fed930cd1142aa23cd8c20b2b (patch) | |
| tree | feb51d06c42246e30ce8ab38b2b5c932803d2f75 /rest_framework/tests | |
| parent | a7a9e8728453cafe331081cbf77ef42f8b9e1841 (diff) | |
| download | django-rest-framework-4ad10949687c271fed930cd1142aa23cd8c20b2b.tar.bz2 | |
HyperlinkedModelSerializer supports overriding of 'url' field. Closes #936
Diffstat (limited to 'rest_framework/tests')
| -rw-r--r-- | rest_framework/tests/test_hyperlinkedserializers.py | 27 | 
1 files changed, 27 insertions, 0 deletions
diff --git a/rest_framework/tests/test_hyperlinkedserializers.py b/rest_framework/tests/test_hyperlinkedserializers.py index 1894ddb2..129600cb 100644 --- a/rest_framework/tests/test_hyperlinkedserializers.py +++ b/rest_framework/tests/test_hyperlinkedserializers.py @@ -301,3 +301,30 @@ class TestOptionalRelationHyperlinkedView(TestCase):                                     data=json.dumps(self.data),                                     content_type='application/json')          self.assertEqual(response.status_code, status.HTTP_200_OK) + + +class TestOverriddenURLField(TestCase): +    def setUp(self): +        class OverriddenURLSerializer(serializers.HyperlinkedModelSerializer): +            url = serializers.SerializerMethodField('get_url') + +            class Meta: +                model = BlogPost +                fields = ('title', 'url') + +            def get_url(self, obj): +                return 'foo bar' + +        self.Serializer = OverriddenURLSerializer +        self.obj = BlogPost.objects.create(title='New blog post') + +    def test_overridden_url_field(self): +        """ +        The 'url' field should respect overriding. +        Regression test for #936. +        """ +        serializer = self.Serializer(self.obj) +        self.assertEqual( +            serializer.data, +            {'title': 'New blog post', 'url': 'foo bar'} +        )  | 
