Издевательство над импортом функции с ключевым словом fromPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Издевательство над импортом функции с ключевым словом from

Сообщение Anonymous »

Там три файла, файл с тестом и два простых модуля:

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

a.py:
import b

def bar():
b.foo()

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

b.py:
def foo():
print("Hello from b.py")

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

test_a.py:
from a import bar
from unittest import mock

def test_bar():
with mock.patch('b.foo') as mock_foo:
bar()
mock_foo.assert_called_once()
Цель — имитировать функцию foo из модуля b, которая затем вызывается внутри панели функций. Приведенный выше код работает должным образом, и тест пройдет.
Однако, когда файл a.py будет изменен следующим образом, где функция foo импортирован непосредственно из модуля b, тогда издевательство завершится неудачно, и внутри панели функций будет вызвана исходная, не издевающаяся функция foo:

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

from b import foo

def bar():
foo()
Почему функция foo не имитируется должным образом в тесте, когда она импортируется с ключевым словом from в модуле a?

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

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

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

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

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

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

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