as I'm new in Django I've tried to write a simple program for blog posts to add, update and delete a post. Now I want to test if my deleted post has been removed from my blog list by assertNotContains code and I got an assertion error. I added part of my code related to my question please feel free for more information. thanks in advance.
views.py
def post_delete(request,pk):
post = get_object_or_404(Post,pk=pk)
if request.method == 'POST':
post.delete()
return redirect('blog_list')
return render(request,"blog/post_delete.html",{"post":post})
urls.py
urlpatterns=[
path("",views.blog_list,name="blog_list"),
path("<int:pk>/",views.post_details,name="post_detail"),
path("create/",views.create_new_post,name="post_create"),
path('<int:pk>/update/', views.post_update ,name='post_update'),
path('<int:pk>/delete/', views.post_delete , name='post_delete'),
]
models.py
class Post(models.Model):
STATUS_CHOICES=(
('pub','published'),
('drf','draft'),
)
title=models.CharField(max_length=100)
text=models.TextField()
status=models.CharField(max_length=3,choices=STATUS_CHOICES)
created_datetime=models.DateTimeField(auto_now_add=True)
modified_datetime=models.DateTimeField(auto_now=True)
author=models.ForeignKey(User, on_delete=models.CASCADE)
test.py
class TestBlogPost(TestCase):
@classmethod
def setUpTestData(cls):
cls.user=User.objects.create(username="user1")
cls.post1=Post.objects.create(
title="post1",
text="this is post1",
status=Post.STATUS_CHOICES[1][0],
author=cls.user
)
def test_delete_post_view_url(self):
response = self.client.post(reverse("post_delete",args=[self.post1.id]))
self.assertEqual(response.status_code,302)
** self.assertNotContains(response, self.post1.title)
**
**error I got:
AssertionError: 302 != 200 : Couldn't retrieve content: Response code was 302 (expected 200)
**