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/test_hyperlinkedserializers.py | |
| parent | a7a9e8728453cafe331081cbf77ef42f8b9e1841 (diff) | |
| download | django-rest-framework-4ad10949687c271fed930cd1142aa23cd8c20b2b.tar.bz2 | |
HyperlinkedModelSerializer supports overriding of 'url' field. Closes #936
Diffstat (limited to 'rest_framework/tests/test_hyperlinkedserializers.py')
| -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'} + ) |
