|
|
@@ -1,7 +1,9 @@
|
|
|
-from django.urls import reverse
|
|
|
-from http import HTTPStatus
|
|
|
+"""Тестирование роутов."""
|
|
|
|
|
|
+from typing import Dict
|
|
|
+from http import HTTPStatus
|
|
|
import pytest
|
|
|
+from django.urls import reverse
|
|
|
from django.contrib.auth import get_user_model
|
|
|
from news.models import Comment, News
|
|
|
|
|
|
@@ -16,7 +18,7 @@ FULL_URLS = {
|
|
|
}
|
|
|
|
|
|
# Зависимые URL'ы
|
|
|
-DEPENDENT_URLS = {
|
|
|
+DEPENDENT_URLS: Dict[str, str] = {
|
|
|
"detail": "news:detail",
|
|
|
"delete": "news:delete",
|
|
|
"edit": "news:edit",
|
|
|
@@ -24,6 +26,8 @@ DEPENDENT_URLS = {
|
|
|
|
|
|
|
|
|
def format_urls(pk):
|
|
|
+ """Форматирует урлы."""
|
|
|
+
|
|
|
formatted_urls = {}
|
|
|
for name, url_info in FULL_URLS.items():
|
|
|
url_name, args = url_info
|
|
|
@@ -37,6 +41,8 @@ def format_urls(pk):
|
|
|
|
|
|
@pytest.fixture
|
|
|
def initial_data(db):
|
|
|
+ """Настройка данных."""
|
|
|
+
|
|
|
news = News.objects.create(title='Заголовок', text='Текст')
|
|
|
author = User.objects.create(username='Лев Толстой')
|
|
|
urls = format_urls(news.id)
|
|
|
@@ -44,6 +50,8 @@ def initial_data(db):
|
|
|
|
|
|
|
|
|
def test_pages_availability(client, initial_data):
|
|
|
+ """Тест доступности страниц."""
|
|
|
+
|
|
|
_, _, urls = initial_data
|
|
|
for url in [urls["home"], urls["login"], urls["logout"], urls["signup"]]:
|
|
|
response = client.get(url)
|
|
|
@@ -51,6 +59,8 @@ def test_pages_availability(client, initial_data):
|
|
|
|
|
|
|
|
|
def test_availability_for_comment_edit_and_delete(client, initial_data):
|
|
|
+ """Тест доступности редактирования и удаления комментариев."""
|
|
|
+
|
|
|
news, author, urls = initial_data
|
|
|
reader = User.objects.create(username='Читатель простой')
|
|
|
Comment.objects.create(
|
|
|
@@ -70,6 +80,8 @@ def test_availability_for_comment_edit_and_delete(client, initial_data):
|
|
|
|
|
|
|
|
|
def test_redirect_for_anonymous_client(client, initial_data):
|
|
|
+ """Проверка редиректа для анонимных клиентов."""
|
|
|
+
|
|
|
news, author, urls = initial_data
|
|
|
Comment.objects.create(
|
|
|
news=news,
|