def test_authorization_is_not_enforced_in_snippets_list(self): """Test that the api has user authorization.""" factory = APIRequestFactory() view = SnippetViewSet.as_view({'get': 'list'}) request = factory.get('/snippets/') force_authenticate(request, user=None, token=None) response = view(request) self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_authorization_is_enforced(self): """Test that the api has user authorization.""" factory = APIRequestFactory() view = SnippetViewSet.as_view({'delete': 'destroy'}) request = factory.delete('/snippets/') force_authenticate(request, user=None, token=None) response = view(request, pk=1) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
def test_get_one_snippet(self): factory = APIRequestFactory() request = factory.get('/snippets/') view = SnippetViewSet.as_view({'get': 'retrieve'}) snippet_to_get = Snippet.objects.get(code='python is cool') response = view(request, pk=snippet_to_get.id) self.assertContains(response, text=snippet_to_get.code, count=1, status_code=200)
def test_authorization_is_enforced_in_snippets_update(self): """Test that the api has user authorization.""" factory = APIRequestFactory() snippet = Snippet.objects.get(id=1) change_snippet = {'code': 'something new'} view = SnippetViewSet.as_view({'put': 'update'}) request = factory.put('/snippets/', change_snippet) user = User.objects.get(username="******") force_authenticate(request, user=user) response = view(request, pk=snippet.id) self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_delete_snippet(self): snippet_to_delete = Snippet.objects.get(code='python is cool') factory = APIRequestFactory() user = User.objects.get(username='******') view = SnippetViewSet.as_view({'delete': 'destroy'}) # Make an authenticated request to the view request = factory.delete('/snippets/', format='json') force_authenticate(request, user=user) response = view(request, pk=snippet_to_delete.id) assert response.status_code == 204 assert response.data is None with raises(Snippet.DoesNotExist, message='Snippet matching query does not exist'): Snippet.objects.get(code='python is cool')
def test_put_update_snippet(self): snippet_to_update = Snippet.objects.get(code='python is cool') data = { "id": str(snippet_to_update.id), "title": "test_put", "code": "Hello Put", "linenos": False, "language": 'python', "style": 'friendly' } factory = APIRequestFactory() user = User.objects.get(username='******') view = SnippetViewSet.as_view({'put': 'update'}) # Make an authenticated request to the view request = factory.put('/snippets/', data=data, format='json') force_authenticate(request, user=user) response = view(request, pk=snippet_to_update.id) self.assertContains(response, text='Hello Put', count=1, status_code=200)
def test_post_new_snippet(self): data = { "title": "test_post", "code": "Hello Post", "linenos": False, "language": 'python', "style": 'friendly' } factory = APIRequestFactory() user = User.objects.get(username='******') view = SnippetViewSet.as_view({'post': 'create'}) # Make an authenticated request to the view request = factory.post('/snippets/', data=data, format='json') force_authenticate(request, user=user) response = view(request) self.assertContains(response, text='highlight', count=2, status_code=201) self.assertEqual(response.data['owner'], 'joe')
# url(r'^snippets/(?P<pk>[0-9]+)/highlight/$', views.SnippetHighlight.as_view()), # ] # urlpatterns = format_suffix_patterns(urlpatterns) # urlpatterns += [ # url(r'^api-auth/', include('rest_framework.urls', # namespace='rest_framework')), # ] from django.conf.urls import url, include from rest_framework.urlpatterns import format_suffix_patterns from snippets import views from snippets.views import SnippetViewSet, UserViewSet, api_root from rest_framework import renderers snippet_list = SnippetViewSet.as_view({'get': 'list', 'post': 'create'}) snippet_detail = SnippetViewSet.as_view({ 'get': 'retrieve', 'put': 'update', 'patch': 'partial_update', 'delete': 'destroy' }) snippet_highlight = SnippetViewSet.as_view( {'get': 'highlight'}, renderer_classes=[renderers.StaticHTMLRenderer]) user_list = UserViewSet.as_view({'get': 'list'}) user_detail = UserViewSet.as_view({'get': 'retrieve'}) # # API endpoints # urlpatterns = format_suffix_patterns([ # url(r'^$', views.api_root), # url(r'^snippets/$', views.SnippetList.as_view(), name='snippet-list'),
from django.conf.urls import url from rest_framework.urlpatterns import format_suffix_patterns from rest_framework import renderers from snippets.views import SnippetViewSet, UserViewSet, api_root snippet_list = SnippetViewSet.as_view({ 'get': 'list', 'post': 'create' }) snippet_detail = SnippetViewSet.as_view({ 'get': 'retrieve', 'put': 'update', 'patch': 'partial_update', 'delete': 'destroy' }) snippet_highlight = SnippetViewSet.as_view({ 'get': 'highlight' }, renderer_classes=[renderers.StaticHTMLRenderer]) user_list = UserViewSet.as_view({ 'get': 'list' }) user_detail = UserViewSet.as_view({ 'get': 'retrieve' }) urlpatterns = [ url(r'^$', api_root), url(r'^snippets/$', snippet_list, name='snippet-list'), url(r'^snippets/(?P<pk>[0-9]+)/$', snippet_detail, name='snippet-detail'), url(r'^snippets/(?P<pk>[0-9]+)/highlight/$', snippet_highlight, name='snippet-highlight'),
from django.conf.urls import url, include from rest_framework.urlpatterns import format_suffix_patterns from rest_framework import renderers from snippets.views import SnippetViewSet, UserViewSet, api_root snippet_list = SnippetViewSet.as_view({ 'get': 'list', 'post': 'create' }) snippet_detail = SnippetViewSet.as_view({ 'get': 'retrieve', 'put' 'update', 'patch': 'partial_update', 'delete': 'destroy', }) snippet_highlight = SnippetViewSet.as_view({ 'get':'highlight' }, renderer_classes=[renderers.StaticHTMLRenderer]) user_list = UserViewSet.as_view({ 'get':'list' }) user_detail = UserViewSet.as_view({ 'get': 'retrieve' })) urlpatterns = format_suffix_patterns([ url(r'^$', views.api_root),
# url(r'^snippets/(?P<pk>[0-9]+)/$', views.SnippetDetail.as_view()), # url(r'^usrs/$', views.UserList.as_view()), # url(r'^usrs/(?P<pk>[0-9]+)/$', views.UserDetail.as_view()), # # url(r'^$', views.api_root), # url(r'^snippets/(?P<pk>[0-9]+)/highlight/$', views.SnippetHighlight.as_view()), # ] # # urlpatterns = format_suffix_patterns(urlpatterns) # # urlpatterns += [ # url(r'^api-auth/',include('rest_framework.urls', # namespace='rest_framework')), # ] snippet_list = SnippetViewSet.as_view({ 'get': 'list', 'post': 'create' }) snippet_detail = SnippetViewSet.as_view({ 'get': 'retrieve', 'put': 'update', 'patch': 'partial_update', 'delete': 'destroy' }) snippet_highlight = SnippetViewSet.as_view({ 'get': 'highlight' }) user_list = UserViewSet.as_view({ 'get': 'list', 'post': 'create', })
from snippets.views import SnippetViewSet, UserViewSet, api_root from rest_framework import renderers snippet_list = SnippetViewSet.as_view({"get": "list", "post": "create"}) snippet_detail = SnippetViewSet.as_view({ "get": "retrieve", "put": "update", "patch": "partial_update", "delete": "destroy" }) snippet_highlight = SnippetViewSet.as_view( {"get": "highlight"}, renderer_class=[renderers.StatucHTMLRenderer]) user_list = UserViewSet.as_view({ "get": "list", }) user_detail = UserViewSet.as_view({"get": "retrieve"}) urlpatterns = format_suffix_patterns([ url(r'^$', views.api_root), url(r'^snippets/$', snippet_list, name='snippet-list'), url(r'^snippets/(?P<pk>\d+)$', snippet_detail, name='snippet-detail'), url(r'^snippets/(?P<pk>\d+)/highlight/$', snippet_highlight, name='snippet-highlight'), url(r'^users/$', user_list, name='user-list'), url(r'^users/(?P<pk>\d+)/$', user_detail, name='user-detail'), ])
from django.urls import path from rest_framework.urlpatterns import format_suffix_patterns from snippets import views from django.conf.urls import include from snippets.views import SnippetViewSet, UserViewSet snippet_list = SnippetViewSet.as_view({'get': 'list', 'post': 'create'}) snippet_detail = SnippetViewSet.as_view({ 'get': 'retrieve', 'put': 'update', 'patch': 'partial_update', 'delete': 'destroy' }) user_list = UserViewSet.as_view({'get': 'list'}) user_detail = UserViewSet.as_view({'get': 'retrieve'}) # urlpatterns = [ # path('snippets/', views.SnippetList.as_view(), name='snippet-list'), # path('snippets/<int:pk>/', views.SnippetDetail.as_view(), name='snippet-detail'), # path('user/', views.UserList.as_view(), name='user-list'), # path('user/<int:pk>/', views.UserDetail.as_view(), name='user-detail'), # path('', views.api_root), # ] urlpatterns = [ path('snippets/', snippet_list, name='snippet-list'), path('snippets/<int:pk>/', snippet_detail, name='snippet-detail'), path('user/', user_list, name='user-list'),
from django.conf.urls import url, include from rest_framework import renderers from rest_framework.routers import DefaultRouter from rest_framework.urlpatterns import format_suffix_patterns from snippets import views from snippets.views import SnippetViewSet, UserViewSet, api_root # viewsets snippet_list = SnippetViewSet.as_view({"get": "list", "post": "create"}) snippet_detail = SnippetViewSet.as_view( {"get": "retrieve", "put": "update", "patch": "partial_update", "delete": "destroy"} ) snippet_highlight = SnippetViewSet.as_view({"get": "hightlight"}, renderer_classes=[renderers.StaticHTMLRenderer]) user_list = UserViewSet.as_view({"get": "list"}) user_detail = UserViewSet.as_view({"get": "retrieve"}) # Create a router and register our viewsets with it. router = DefaultRouter() router.register(r"snippets", view.SnippetViewSet) router.register(r"users", view.UserViewSet) urlpatterns = [ url(r"^$", views.api_root), # replaced by router # url(r'^snippets/$', snippet_list, name='snippet-list'),
from snippets.views import SnippetViewSet, UserViewSet, api_root from rest_framework import renderes snippet_list = SnippetViewSet.as_view({ 'get': 'list', 'post': 'create' }) snippet_detail = SnippetViewSet.as_view({ 'get': 'retrieve' 'put': 'update' 'patch': 'partial_update', 'delete': 'destroy' }) snippet_highlight = SnippetViewSet.as_view({ 'get': 'highlight' }, renderer_classes=[renderes.StaticHTMLRenderer]) user_list = UserViewSet.as_view({ 'get': 'list' }) user_detail = UserViewSet.as_view({ 'get': 'retrieve' }) urlpatterns = format_suffix_patterns([ url(r'^$', api_root), url(r'^snippets/$', snippet_list, name='snippet_list'), url(r'^snippets/(?P<pk>[0-9]+)/highlight/$', snippet_highlight, name='snippet_highlight'), url(r'^users/$' user_list, name='user-list'), url(r'^users/(?P<pk>[0-9]+)/$', user_detail, name='user-detail') ])