Укажите разницу между модулем и функцией в `unittest.mock.patch`: `AttributeError: <function ... > не имеет атрибута <..Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Укажите разницу между модулем и функцией в `unittest.mock.patch`: `AttributeError: <function ... > не имеет атрибута <..

Сообщение Anonymous »

Я исправляю (используя модуль unittest.mock) функцию load_data_from_provider в файле my_package/load_data.py. Однако в __init__.py my_package я импортирую функцию load_data.
В своих тестах я использую патч

Код: Выделить всё

@patch("my_package.load_data.load_data_from_provider")
В Python 3.12 это работает нормально. Например, патч интерпретирует load_data как модуль my_package/load_data.py. Однако в Python 3.10 он интерпретирует load_data как функцию в my_package/__init__.py, что приводит к ошибке AttributeError: не имеет атрибута load_data_from_provider.
Использовал ли я в своем проекте очень плохие имена файлов и функций? И есть ли способ указать, когда я ссылаюсь на модуль, а когда на функцию в обертке патча?
p.s. Я хочу поддерживать несколько версий Python для своего пакета, поэтому запуск моих тестов должен работать на всех этих версиях Python, поэтому простое изменение версии Python не является удовлетворительным.

Подробнее здесь: https://stackoverflow.com/questions/791 ... patch-attr
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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