AnonymousUser автоматически создается для TestCase

Я столкнулся с ситуацией, когда при создании TestCase автоматически создается анонимный пользователь, чего не ожидалось и не хотелось бы.

Приведенный ниже тестовый пример - не единственный тестовый пример, в котором наблюдается такое поведение. Для моего проекта была создана пользовательская модель User, но я не уверен, что это случайно не привело к такому поведению.

В python manage.py shell я запросил всех пользователей с помощью get_user_model().objects.all(); в наборе запросов был экземпляр <User: AnonymousUser>. Он был удален, когда я закрыл/переоткрыл оболочку и проверил администратора. Чтобы указать, какую базу данных я использую для тестирования, я использую встроенную тестовую базу данных, которую Django предоставляет с SQLite

Что может быть причиной того, что тест-кейс автоматически заполняется AnonymousUser?

from django.test import TestCase


class TestViewUserQuestionsPostedPage(TestCase):

    @classmethod
    def setUpTestData(cls):
        cls.viewed_user = get_user_model().objects.create_user("ItsYou")
        testcase_users = get_user_model().objects.all()
    
        request = RequestFactory().get(reverse("authors:profile", kwargs={'id': 1}))
        cls.view = UserProfilePage()
        cls.view.setup(request, id=2)
        cls.view_context = cls.view.get_context_data()

    def test_viewed_profile_of_user(self):
        self.assertIsInstance(self.view, Page)
        self.assertIn('user', self.view_context)
        self.assertEqual(self.view_context['object'], self.viewed_user)
(Pdb) testcase_users = get_user_model().objects.all()
(Pdb) testcase_users
<QuerySet [<User: AnonymousUser>, <User: ItsYou>]>
from django.contrib.auth.models import AbstractUser


class User(AbstractUser):

    username = CharField(
        unique=True, max_length=16,
        error_messages={
            "unique": "Username not available"
        }
    )
Вернуться на верх