Как проверить параметр 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