I started learning Django and now I want to write some tests for my application. After reading some blog posts and watching youtube tutorials I wrote tests for URLs. Look at below.
urls.py
from .views import HomeView, ArticleDetailView, CreatePostView, UpdatePostView, DeletePostView, StatisticcsView, CreatePostCategoryView, CategoryView, LikeView, CreateCommentView
urlpatterns = [
path('', HomeView.as_view(), name="home"),
path('article/<int:pk>', ArticleDetailView.as_view(), name="article_detail"),
path('add_post/', CreatePostView.as_view(), name="add_post"),
path('add_category/', CreatePostCategoryView.as_view(), name="add_category"),
path('article/edit/<int:pk>', UpdatePostView.as_view(), name="update_post"),
path('article/delete/<int:pk>', DeletePostView.as_view(), name="delete_post"),
path('category/<str:cats>/', CategoryView, name="category"),
path('like/<int:pk>', LikeView, name='like_post'),
path('statistics/', StatisticcsView.as_view(), name="statistics"),
path('article/<int:pk>/comment/', CreateCommentView.as_view(), name="add_comment"),
]
test_urls.py
from django.test import SimpleTestCase
from django.urls import reverse, resolve
from blog.views import HomeView, ArticleDetailView, CreatePostView, CreatePostCategoryView, UpdatePostView, DeletePostView, CategoryView, LikeView, StatisticcsView, CreateCommentView
class TestBlogUrls(SimpleTestCase):
def test_home_url_is_resolved(self):
url = reverse('home')
self.assertEquals(resolve(url).func.view_class, HomeView)
def test_article_detail_url_is_resolved(self):
url = reverse('article_detail', args=[1])
self.assertEquals(resolve(url).func.view_class, ArticleDetailView)
def test_create_post_url_is_resolved(self):
url = reverse('add_post')
self.assertEquals(resolve(url).func.view_class, CreatePostView)
def test_create_post_category_url_is_resolved(self):
url = reverse('add_category')
self.assertEquals(resolve(url).func.view_class, CreatePostCategoryView)
def test_update_post_url_is_resolved(self):
url = reverse('update_post', args=[1])
self.assertEquals(resolve(url).func.view_class, UpdatePostView)
def test_delete_post_url_is_resolved(self):
url = reverse('delete_post', args=[1])
self.assertEquals(resolve(url).func.view_class, DeletePostView)
def test_category_url_is_resolved(self):
url = reverse('category', args=['python'])
self.assertEquals(resolve(url).func, CategoryView)
def test_like_post_url_is_resolved(self):
url = reverse('like_post', args=[1])
self.assertEquals(resolve(url).func, LikeView)
def test_statistics_url_is_resolved(self):
url = reverse('statistics')
self.assertEquals(resolve(url).func.view_class, StatisticcsView)
def test_add_comment_url_is_resolved(self):
url = reverse('add_comment', args=[1])
self.assertEquals(resolve(url).func.view_class, CreateCommentView)
My question is if this practice is correct or maybe I can write it better. Thanks in advance.