diff --git a/rest_framework/tests/genericrelations.py b/rest_framework/tests/genericrelations.py index bc7378e12..e2c65a44c 100644 --- a/rest_framework/tests/genericrelations.py +++ b/rest_framework/tests/genericrelations.py @@ -1,9 +1,23 @@ from django.test import TestCase -from rest_framework import serializers +from rest_framework import serializers, generics from rest_framework.tests.models import * +from rest_framework.compat import patterns, url + + +class BookmarkDetail(generics.RetrieveAPIView): + model = ManyToManyModel + serializer_class = serializers.HyperlinkedModelSerializer + + +urlpatterns = patterns('', + url(r'^bookmark/(?P\d+)/$', BookmarkDetail.as_view(), name='bookmarks-detail'), +) class TestGenericRelations(TestCase): + + urls = 'rest_framework.tests.genericrelations' + def setUp(self): bookmark = Bookmark(url='https://www.djangoproject.com/') bookmark.save() @@ -31,3 +45,18 @@ class TestGenericRelations(TestCase): 'url': u'https://www.djangoproject.com/' } self.assertEquals(serializer.data, expected) + + def test_hyperlinked_generic_relation(self): + + class BookmarkSerializer(serializers.ModelSerializer): + tags = serializers.ManyHyperlinkedRelatedField(source='tags') + + class Meta: + model = Bookmark + exclude = ('id', 'url') + + serializer = BookmarkSerializer(self.bookmark) + expected = { + 'tags': [u'/bookmark/1/', u'/bookmark/2/'] + } + self.assertEquals(serializer.data, expected)