Как я могу проверить соединение механизма SQLAlchemy с внешней базой данных в pytest с целью проверки проверки соединениPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу проверить соединение механизма SQLAlchemy с внешней базой данных в pytest с целью проверки проверки соединени

Сообщение Anonymous »

Я пытаюсь протестировать функцию, которая содержит блок 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»