В моем исходном классе у меня есть следующие утверждения
def main():
conn = create_connection()
cur = conn.cursor()
cur.execute(query)
В моем тестовом классе я пытаюсь подтвердить "запрос", переданный методу cur.execute. Но я хотел бы поиздеваться над create_connection и объектом курсора, возвращаемым функцией cursor (). Я смог имитировать create_connection, используя приведенный ниже код. Как я могу исправить курсор и подтвердить значение запроса, переданного для выполнения функции?
@patch(main.create_connection)
def test_main(self,mock_conn):
1 ответ
Поскольку созданный курсор уже является имитацией (например, каждый вызов фиктивного объекта создает другой фиктивный объект), вам не нужно ничего настраивать. Вы можете просто получить макет курсора:
@patch('main.create_connection')
def test_main(mock_conn):
cursor = mock_conn.return_value.cursor.return_value
main()
cursor.execute.assert_called_once_with(query)
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.