Django TestCase не удается загрузить данные приспособления с помощью MySQL

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

Когда я пытаюсь сделать запрос в своих тестах, Django бросает MySQLdb._exceptions.OperationalError и не может продолжить. Я заметил, что эта проблема возникает только при использовании django.test.TestCase, но не при использовании django.test.TransactionTestCase. Теперь я прочитал, что есть разница между тем, как эти два метода обрабатывают транзакции, но я все еще не могу понять, почему один не работает, а другой работает. Может ли кто-нибудь указать мне правильное направление?

Этот код не работает:

class AuthenticateUserTest(TestCase):
    fixtures = ["test_users.json"]
    serialized_rollback = True

    def test_login_success(self):
        print(User.objects.all())

но этот код не делает этого:

class AuthenticateUserTest(TransactionTestCase):
    fixtures = ["test_users.json"]
    serialized_rollback = True

    def test_login_success(self):
        print(User.objects.all())

с этим приспособлением:

[
        {
        "model": "app.user",
        "pk": 1,
        "fields": {
            "created_at": "2022-04-07T13:34:53+01:00",
            "email": "test@test.com",
            "password": "topsecret",
            "is_active": true,
            "roles": "[\"SUPER_ADMIN\"]",
            "first_name": "Test",
            "last_name": "User"
        }
    }
]

и со следующей ошибкой:

ERROR: test_login_success (tests.auth.test_auth_api.AuthenticateUserTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/app/tests/auth/test_auth_api.py", line 36, in test_login_success
    print(User.objects.all())
  File "/usr/local/lib/python3.8/site-packages/django/db/models/query.py", line 252, in __repr__
    data = list(self[:REPR_OUTPUT_SIZE + 1])
  File "/usr/local/lib/python3.8/site-packages/django/db/models/query.py", line 258, in __len__
    self._fetch_all()
  File "/usr/local/lib/python3.8/site-packages/django/db/models/query.py", line 1261, in _fetch_all
    self._result_cache = list(self._iterable_class(self))
  File "/usr/local/lib/python3.8/site-packages/django/db/models/query.py", line 57, in __iter__
    results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
  File "/usr/local/lib/python3.8/site-packages/django/db/models/sql/compiler.py", line 1155, in execute_sql
    cursor.close()
  File "/usr/local/lib/python3.8/site-packages/MySQLdb/cursors.py", line 83, in close
    while self.nextset():
  File "/usr/local/lib/python3.8/site-packages/MySQLdb/cursors.py", line 137, in nextset
    nr = db.next_result()
MySQLdb._exceptions.OperationalError: (2006, '')
Вернуться на верх