def test_note_deletion(self): '''A note is no longer in the database after it is deleted.''' # user makes a POST request at the confirm page post_request = self.factory.post('notes:delete_note') response = NoteDelete.as_view()(post_request, slug=self.note.slug) # user is redirected self.assertEqual(response.status_code, 302) # the deleted note is no longer in the database queryset_of_deleted_note = Note.objects.get(title=self.note.title) self.assertEqual(len(queryset_of_deleted_note), 0)
"""main_config URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/2.2/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: path('', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.urls import path, include from notes.views import NoteCreate, NoteListView, NoteDetailView, NoteUpdate, NoteDelete urlpatterns = [ path('create', NoteCreate.as_view(), name='note-create'), path('', NoteListView.as_view(), name='note-list'), path('<int:pk>/', NoteDetailView.as_view(), name='note-detail'), path('update/<int:pk>/', NoteUpdate.as_view(), name='note-update'), path('delete/<int:pk>/', NoteDelete.as_view(), name='note-delete'), ]
from django.urls import path from notes.views import (NoteList, NoteDetail, NoteCreate, NoteUpdate, NoteDelete, post_on_medium) from django.conf import settings from django.conf.urls.static import static app_name = 'notes' urlpatterns = ([ path('', NoteCreate.as_view(), name="create_note_form"), path('home/', NoteList.as_view(), name='index'), path('<slug:slug>/edit/', NoteUpdate.as_view(), name="edit_note_form"), path('<slug:slug>/delete/', NoteDelete.as_view(), name='delete_note'), path('<slug:slug>/', NoteDetail.as_view(), name='notes-detail-page'), path(('https://medium.com/m/oauth/authorize?' + 'client_id={{clientId}}' + '&scope=basicProfile,publishPost&state={{state}}' + '&response_type=code&redirect_uri={{redirectUri}}'), post_on_medium, name='post-to-medium'), ])
def test_get_delete_page(self): '''A user is able to see a page asking them to confirm deletion.''' get_request = self.factory.get('notes:delete_note') get_request.user = self.user response = NoteDelete.as_view()(get_request, slug=self.note.slug) self.assertEqual(response.status_code, 200)
from django.conf.urls import url from notes.views import NoteListView, NoteDetailView, NoteCreate, NoteUpdate, NoteDelete urlpatterns = [ url(r'^$', NoteListView.as_view(), name='note-list'), url(r'^(?P<pk>\d+)/$', NoteDetailView.as_view(), name='note-detail'), url(r'note/add/$', NoteCreate.as_view(), name='note-add'), url(r'note/(?P<pk>[0-9]+)/$', NoteUpdate.as_view(), name='note-update'), url(r'note/(?P<pk>[0-9]+)/delete/$', NoteDelete.as_view(), name='note-delete'), ]