Как проверить параметр max_execution_time mysql в django с помощью pytest

Я пытаюсь протестировать опцию max_execution_time для mysql в Django с помощью pytest. Но у меня возникают проблемы с составлением медленного запроса для проверки опции с помощью pytest. Можете ли вы дать мне какие-нибудь советы или хороший пример медленного запроса?

Environment

  • Python 3.8.10
  • Django 3.0.14
  • pytest 5.4.3
  • MySQL 5.7

Попытка

@pytest.mark.django_db
def test_max_execution_time():
    with pytest.raise(OperationalError):
        result = list(Blog.objects.raw("""
            CREATE PROCEDURE InfLoop()
            BEGIN
            WHILE 1=1 DO
                SELECT 1;
            END WHILE;
            END;
            CALL InfLoop();
        """))
pytest test.py

Актуальный

FAILED test.py F
===================================================================================== FAILURES ======================================================================================
______________________________________________________________________ test_max_execution_time _______________________________________________________________________

    @pytest.mark.django_db
    def test_max_execution_time():
        with pytest.raises(OperationalError):
>           result = list(Blog.objects.raw("""
            CREATE PROCEDURE InfLoop()
            BEGIN
            WHILE 1=1 DO
                SELECT 1;
            END WHILE;
            END;
            CALL InfLoop();
        """))
E           Failed: DID NOT RAISE <class 'django.db.utils.OperationalError'>

test.py:102: Failed
============================================================================== short test summary info ==============================================================================
FAILED test.py::test_max_execution_time - Failed: DID NOT RAISE <class'django.db.utils.OperationalError'>

Ожидается

1 passed
Вернуться на верх