diff options
| author | Ludwig Kraatz | 2012-11-13 18:00:41 +0100 | 
|---|---|---|
| committer | Ludwig Kraatz | 2012-11-13 18:00:41 +0100 | 
| commit | cc55a7b64310cdd4b8b96e8270a48fd994ede90c (patch) | |
| tree | 8208b4efaf9547a96382a14315df8d810f279cf0 /rest_framework/tests | |
| parent | 44e9749e36d31f811db7dc0998c7b8d1e35a784d (diff) | |
| download | django-rest-framework-cc55a7b64310cdd4b8b96e8270a48fd994ede90c.tar.bz2 | |
Returning a Location Header on Create
when creating a Resource with HyperlinkedIdentityField of any name
Diffstat (limited to 'rest_framework/tests')
| -rw-r--r-- | rest_framework/tests/hyperlinkedserializers.py | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/rest_framework/tests/hyperlinkedserializers.py b/rest_framework/tests/hyperlinkedserializers.py index 5ab850af..cc5a19c1 100644 --- a/rest_framework/tests/hyperlinkedserializers.py +++ b/rest_framework/tests/hyperlinkedserializers.py @@ -8,6 +8,7 @@ factory = RequestFactory()  class BlogPostCommentSerializer(serializers.ModelSerializer): +    custom_identity_field = serializers.HyperlinkedIdentityField(view_name='blogpostcomment-detail')      text = serializers.CharField()      blog_post_url = serializers.HyperlinkedRelatedField(source='blog_post', view_name='blogpost-detail') @@ -17,6 +18,7 @@ class BlogPostCommentSerializer(serializers.ModelSerializer):  class PhotoSerializer(serializers.Serializer): +    """ When Adding a HyperlinkedIdentityField to this serializer, the TestCreateWithForeignKeysAndCustomSlug will fail """      description = serializers.CharField()      album_url = serializers.HyperlinkedRelatedField(source='album', view_name='album-detail', queryset=Album.objects.all(), slug_field='title', slug_url_kwarg='title') @@ -53,6 +55,9 @@ class BlogPostCommentListCreate(generics.ListCreateAPIView):      model = BlogPostComment      serializer_class = BlogPostCommentSerializer +class BlogPostCommentDetail(generics.RetrieveAPIView): +    model = BlogPostComment +    serializer_class = BlogPostCommentSerializer  class BlogPostDetail(generics.RetrieveAPIView):      model = BlogPost @@ -80,6 +85,7 @@ urlpatterns = patterns('',      url(r'^manytomany/(?P<pk>\d+)/$', ManyToManyDetail.as_view(), name='manytomanymodel-detail'),      url(r'^posts/(?P<pk>\d+)/$', BlogPostDetail.as_view(), name='blogpost-detail'),      url(r'^comments/$', BlogPostCommentListCreate.as_view(), name='blogpostcomment-list'), +    url(r'^comments/(?P<pk>\d+)/$', BlogPostCommentDetail.as_view(), name='blogpostcomment-detail'),      url(r'^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'), @@ -191,6 +197,7 @@ class TestCreateWithForeignKeys(TestCase):          request = factory.post('/comments/', data=data)          response = self.create_view(request).render()          self.assertEqual(response.status_code, status.HTTP_201_CREATED) +        self.assertEqual(response["Location"], 'http://testserver/comments/1/')          self.assertEqual(self.post.blogpostcomment_set.count(), 1)          self.assertEqual(self.post.blogpostcomment_set.all()[0].text, 'A test comment') @@ -215,6 +222,7 @@ class TestCreateWithForeignKeysAndCustomSlug(TestCase):          request = factory.post('/photos/', data=data)          response = self.list_create_view(request).render()          self.assertEqual(response.status_code, status.HTTP_201_CREATED) +        self.assertNotIn("Location",response,msg="A Serializer without HyperlinkedIdentityField can not produce a valid Location header (for now). Thats why there shouldn'd be one")          self.assertEqual(self.post.photo_set.count(), 1)          self.assertEqual(self.post.photo_set.all()[0].description, 'A test photo')  | 
