def test_delete_data(self): obj = self.create_post(title='another new title') delete_url = reverse("posts-api:delete", kwargs={"slug": obj.slug}) request = self.factory.delete(delete_url) response1 = PostDeleteAPIView.as_view()(request, slug=obj.slug) self.assertEqual(response1.status_code, 401) force_authenticate(request, user=self.user) response2 = PostDeleteAPIView.as_view()(request, slug=obj.slug) self.assertEqual(response2.status_code, 204)
def test_crud_data(self): obj = Post.objects.create(title='Test API Post', content='New Content', publish=timezone.now().date()) create_url = reverse('posts-api:create') update_url = reverse('posts-api:update', kwargs={'slug': obj.slug}) delete_url = reverse('posts-api:delete', kwargs={'slug': obj.slug}) request_create = self.factory.post(create_url, data=self.data) force_authenticate(request_create, self.user) response_create = PostCreateAPIView.as_view()(request_create, slug=obj.slug) self.assertEqual(response_create.status_code, 201) request_update = self.factory.put(update_url, data=self.data) force_authenticate(request_update, self.user) response_update = PostUpdateAPIView.as_view()(request_update, slug=obj.slug) self.assertEqual(response_update.status_code, 200) request_delete = self.factory.delete(delete_url) force_authenticate(request_delete, self.user) response_delete = PostDeleteAPIView.as_view()(request_delete, slug=obj.slug) self.assertEqual(response_delete.status_code, 204)
from django.conf.urls import url from posts.api.views import ( PostCreateAPIView, PostDeleteAPIView, PostDetailAPIView, PostListAPIView, PostUpdateAPIView, ) urlpatterns = [ url(r'^$', PostListAPIView.as_view(), name='list'), url(r'^create/$', PostCreateAPIView.as_view(), name='create'), url(r'^(?P<slug>[\w-]+)/$', PostDetailAPIView.as_view(), name='detail'), url(r'^(?P<slug>[\w-]+)/edit/$', PostUpdateAPIView.as_view(), name='update'), url(r'^(?P<slug>[\w-]+)/delete/$', PostDeleteAPIView.as_view(), name='delete') ]
from django.conf.urls import url from posts.api.views import PostListAPIView, PostDetailAPIView, PostUpdateAPIView, PostDeleteAPIView, PostCreateAPIView urlpatterns = [ url(r'^$', PostListAPIView.as_view(), name="list"), url(r'^create/$', PostCreateAPIView.as_view(), name="create"), url(r'^(?P<slug>[\w-]+)/$', PostDetailAPIView.as_view(), name="detail"), url(r'^(?P<slug>[\w-]+)/edit/$', PostUpdateAPIView.as_view(), name="update"), url(r'^(?P<slug>[\w-]+)/delete/$', PostDeleteAPIView.as_view(), name="delete"), ]
from django.urls import path from django.conf.urls import url from posts.api.views import ( PostListAPIView, PostDetailAPIView, PostUpdateAPIView, PostDeleteAPIView, ) app_name = 'posts' urlpatterns = [ url(r'^$', PostListAPIView.as_view(), name='list'), url(r'^(?P<pk>\d+)/$', PostDetailAPIView.as_view(), name='detail'), url(r'^(?P<pk>\d+)/update$', PostUpdateAPIView.as_view(), name='update'), url(r'^(?P<pk>\d+)/delete$', PostDeleteAPIView.as_view(), name='delete'), ]
from django.conf.urls import url from django.contrib import admin from posts.api.views import ( PostCreateAPIView, PostDetailAPIView, PostListAPIView, PostUpdateAPIView, PostDeleteAPIView, ) urlpatterns = [ url(r'^$', PostListAPIView.as_view(), name='list'), #url(r'^create/$', post_create), url(r'^create/$', PostCreateAPIView.as_view(), name='list'), url(r'^(?P<slug>[\w-]+)/$', PostDetailAPIView.as_view(), name='detail'), url(r'^(?P<slug>[\w-]+)/edit/$', PostUpdateAPIView.as_view(), name='update'), url(r'^(?P<slug>[\w-]+)/delete/$', PostDeleteAPIView.as_view(), name='delete'), #url(r'^posts/$', "<appname>.views.<function_name>"), ]
from __future__ import absolute_import from django.conf.urls import url from posts.api.views import ( LikeAPIView, PostListAPIView, PostDetailAPIView, PostDeleteAPIView, PostUpdateAPIView, PostCreateAPIView ) urlpatterns = [ url(r'^create/$', PostCreateAPIView.as_view(), name='APIcreate'), url(r'^$', PostListAPIView.as_view(), name='APIList'), url(r'^(?P<slug>[\w\-]{10})/$', PostDetailAPIView.as_view(), name='APIDetail'), url(r'^(?P<slug>[\w\-]{10})/update/$', PostUpdateAPIView.as_view(), name='APIupdate'), url(r'^(?P<slug>[\w\-]{10})/delete/$', PostDeleteAPIView.as_view(), name='APIdelete'), url(r'^(?P<slug>[\w\-]{10})/$', PostDetailAPIView.as_view(), name='APIview'), url(r'^(?P<slug>[\w\-]{10})/like/$', LikeAPIView.as_view(), name='APIlike'), #url(r'^(?P<slug>[\w\-]{10})/unlike/$', unlike_post_view, name='unlike'), ]
from django.urls import path from posts.api.views import (PostCreateAPIView, PostListAPIView, PostDetailAPIView, PostDeleteAPIView, PostUpdateAPIView) app_name = 'posts' urlpatterns = [ path('', PostListAPIView.as_view(), name='list'), path('create/', PostCreateAPIView.as_view(), name='create'), path('<slug:slug>/', PostDetailAPIView.as_view(), name='detail'), path('<slug:slug>/edit/', PostUpdateAPIView.as_view(), name='update'), path('<slug:slug>/delete/', PostDeleteAPIView.as_view(), name='delete') ]
from django.conf.urls import url from posts.api.views import ( PostListAPIView, PostCreateAPIView, PostDetailAPIView, PostDeleteAPIView, PostUpdateAPIView, ) urlpatterns = [ url(r'^$', PostListAPIView.as_view(), name="list"), # restframework treats pk as the default search value url(r'^(?P<pk>\d+)/$', PostDetailAPIView.as_view(), name="detail"), url(r'^create/$', PostCreateAPIView.as_view(), name="create"), url(r'^(?P<pk>\d+)/edit/$', PostUpdateAPIView.as_view(), name="update"), url(r'^(?P<pk>\d+)/delete/$', PostDeleteAPIView.as_view(), name="delete"), ]