From 855a2eb3b1cbe95bb1ca31b053be6cd5aefbf498 Mon Sep 17 00:00:00 2001 From: Bart Vandendriessche Date: Tue, 11 Feb 2014 10:06:44 +0100 Subject: [PATCH] Add test for hyperlinkedserializers mapped to a url with a captured parameter --- rest_framework/tests/test_hyperlinkedserializers.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/rest_framework/tests/test_hyperlinkedserializers.py b/rest_framework/tests/test_hyperlinkedserializers.py index 83d460435..13ffe8656 100644 --- a/rest_framework/tests/test_hyperlinkedserializers.py +++ b/rest_framework/tests/test_hyperlinkedserializers.py @@ -104,6 +104,7 @@ urlpatterns = patterns('', url(r'^comments/$', BlogPostCommentListCreate.as_view(), name='blogpostcomment-list'), url(r'^comments/(?P\d+)/$', BlogPostCommentDetail.as_view(), name='blogpostcomment-detail'), url(r'^albums/(?P\w[\w-]*)/$', AlbumDetail.as_view(), name='album-detail'), + url(r'^(?P<scope>\w[\w-]*)/albums/(?P<title>\w[\w-]*)/$', AlbumDetail.as_view(), name='album-detail'), url(r'^photos/$', PhotoListCreate.as_view(), name='photo-list'), url(r'^optionalrelation/(?P<pk>\d+)/$', OptionalRelationDetail.as_view(), name='optionalrelationmodel-detail'), ) @@ -211,6 +212,11 @@ class TestHyperlinkedIdentityFieldLookup(TestCase): 'bar': {'title': 'bar', 'url': 'http://testserver/albums/bar/'}, 'baz': {'title': 'baz', 'url': 'http://testserver/albums/baz/'} } + self.data_scoped = { + 'foo': {'title': 'foo', 'url': 'http://testserver/scope/albums/foo/'}, + 'bar': {'title': 'bar', 'url': 'http://testserver/can-be/albums/bar/'}, + 'baz': {'title': 'baz', 'url': 'http://testserver/random/albums/baz/'} + } def test_lookup_field(self): """ @@ -223,6 +229,13 @@ class TestHyperlinkedIdentityFieldLookup(TestCase): self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data, self.data[album.title]) + def test_lookup_field_scoped(self): + for album, scope in zip(Album.objects.all(),('scope', 'can-be', 'random')): + request = factory.get('/{0}/albums/{1}/'.format(scope, album.title)) + response = self.detail_view(request, title=album.title, scope=scope) + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data, self.data_scoped[album.title]) + class TestCreateWithForeignKeys(TestCase): urls = 'rest_framework.tests.test_hyperlinkedserializers'