Я пытаюсь протестировать функцию, которая содержит блок try-Exception для 'engine.connect()' и перехватывает либо SQLAlchemy exc.OperationalError, либо AttributeError. Первым исключением является обнаружение неверных учетных данных, используемых для создания объекта URL, который, в свою очередь, используется для создания механизма (неправильное имя пользователя, имя хоста, имя базы данных и т. д.). Последнее предназначено для того, чтобы уловить, когда в функцию передается объект, отличный от объекта механизма. Я не знаком с pytest и не могу найти способ Monkeypatch Engine.connect() таким образом, чтобы он по-прежнему возвращал соответствующий exc.OperationalError для неправильного URL-адреса, если это даже предпочтительный подход. Насколько мне известно, я не хочу на самом деле подключаться к облачной базе данных Postgres при тестировании, но не знаю, как реплицировать внешнее соединение таким образом, чтобы оно по-прежнему вызывало правильные исключения при наличии альтернативных входных данных. Какой здесь стандарт?
def verify_engine_connection(engine):
try:
engine.connect()
except exc.OperationalError as e:
# Use regex to narrow down which credential is incorrect, and then log
raise
except AttributeError as e:
log.critical('Function did not receive engine object, raised AttributeError: ' + str(e))
raise
except Exception as e:
log.critical('Could not verify engine connection due to unexpected exception: ' + str(e))
raise
Подробнее здесь: https://stackoverflow.com/questions/793 ... -in-pytest
Как я могу проверить соединение механизма SQLAlchemy с внешней базой данных в pytest с целью проверки проверки соединени ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Использование транзакций с базой данных SQLALCHEMY 2.0 к модулям PytEST через Postgres
Anonymous » » в форуме Python - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Использование транзакций с базой данных SQLALCHEMY 2.0 к модулям PytEST через Postgres
Anonymous » » в форуме Python - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-