Django - ImportError: Failed to import test module:

У меня проблема с учебником, за которым я следую. мы дошли до точки тестирования, и я продолжаю получать сообщение об ошибке при запуске. Задание - В проекте Yatube напишите тесты, которые проверяют, что

при отправке валидной формы со страницы создания поста reverse('posts:create_post') создаётся новая запись в базе данных;

при отправке валидной формы со страницы редактирования поста reverse('posts:post_edit', args=('post_id',)) происходит изменение поста с post_id в базе данных.

python manage.py test

Вот моя ошибка:

Creating test database for alias 'default'...
FF.........
======================================================================
FAIL: test_cant_create_existing_group (posts.tests.test_forms.PostForm)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:\dev\hw02_community\yatube\posts\tests\test_forms.py", line 67, in test_cant_create_existing_group
    self.assertFormError(
  File "D:\dev\hw02_community\venv\lib\site-packages\django\test\testcases.py", line 520, in assertFormError
    self.fail(msg_prefix + "The form '%s' was not used to render the response" % form)
AssertionError: The form 'form' was not used to render the response

======================================================================
FAIL: test_create_task (posts.tests.test_forms.PostForm)
Валидная форма создает запись в Post.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:\dev\hw02_community\yatube\posts\tests\test_forms.py", line 109, in test_create_task
    self.assertRedirects(response, reverse('posts:profile', kwargs={
  File "D:\dev\hw02_community\venv\lib\site-packages\django\test\testcases.py", line 345, in assertRedirects
    self.assertEqual(
AssertionError: 200 != 302 : Response didn't redirect as expected: Response code was 200 (expected 302)

----------------------------------------------------------------------
Ran 11 tests in 0.192s

FAILED (failures=2)
Destroying test database for alias 'default'...
System check identified no issues (0 silenced).

Я не понимаю, почему я получаю эту ошибку.

Вот мой код в posts/tests/test_views.py:

from ..forms import PostForm
from ..models import Post, Group
from django.test import Client, TestCase
from django.urls import reverse
from django.contrib.auth import get_user_model

User = get_user_model()


class PostForm(TestCase):
    @classmethod
    def setUpClass(cls):
        super().setUpClass()
        cls.user = User.objects.create_user(username='StasBasov')
        cls.authorized_author = Client()
        cls.group = Group.objects.create(
                                         title='test_title',
                                         slug='test-slug',
                                         description='test_description'
                                        )
        cls.post = Post.objects.create(
                                       author=cls.user,
                                       text='test_text',
                                      )

    def setUp(self):
        # Создаём неавторизованный клиент
        self.guest_client = Client()
        # Создаём авторизованный клиент
        self.authorized_client = Client()
        self.authorized_client.force_login(self.user)

    def test_cant_create_existing_group(self):
        # Подсчитаем количество записей в Post
        posts_count = Post.objects.count()
        form_data = {
                     'text': 'Текст из формы',
                     'group': 'group',
                    }
        response = self.guest_client.post(
                                          reverse('posts:index'),
                                          data=form_data,
                                          follow=True
                                         )
        # Убедимся, что запись в базе данных не создалась:
        # сравним количество записей в Post до и после отправки формы
        self.assertEqual(Post.objects.count(), posts_count)
        # Проверим, что форма вернула ошибку с ожидаемым текстом:
        # из объекта response берём словарь 'form',
        # указываем ожидаемую ошибку для поля 'slug' этого словаря
        self.assertFormError(
                             response, 'form', 'slug',
                             'Адрес "first" уже существует, придумайте уникальное значение'
                            )
        # Проверим, что ничего не упало и страница отдаёт код 200
        self.assertEqual(response.status_code, 200)

    def test_create_task(self):
        """Валидная форма создает запись в Post."""
        # Подсчитаем количество записей в Post
        posts_count = Post.objects.count()

        form_data = {
                     'text': 'test_text',
                     'group': 'test_group'
                    }
        # Отправляем POST-запрос
        response = self.guest_client.post(reverse('posts:index'), data=form_data)
        # Проверяем, сработал ли редирект
        self.assertRedirects(response, reverse('posts:profile', kwargs={
                                               'username': self.user.username
                                               }))
        # Проверяем, увеличилось ли число постов
        self.assertEqual(Post.objects.count(), posts_count + 1)
        # Проверяем, что создалась запись с заданным слагом
        self.assertTrue(
                        Post.objects.filter(
                                            text='test_text',
                                            group='test_group',
                                            # image='tasks/small.gif'
                                           ).exists()
                       )

Форма создания поста, для которой пишется тест (posts/form.py):

from django import forms
from .models import Post


class PostForm(forms.ModelForm):
    class Meta:
        model = Post
        fields = ('text', 'group',)

Ответы (0 шт):