У меня следующую структуру:Как высмеять функцию, определенную в модуле пакета?
|-- dirBar
| |-- __init__.py
| |-- bar.py
|-- foo.py
`-- test.py
bar.py
def returnBar():
return 'Bar'
foo.py
from dirBar.bar import returnBar
def printFoo():
print returnBar()
test.py
from mock import Mock
from foo import printFoo
from dirBar import bar
bar.returnBar = Mock(return_value='Foo')
printFoo()
результат python test.py
- Bar
.
Как насмехаться с printBar
, чтобы вернуть его Foo
, чтобы printFoo
распечатал его?
EDIT: Без изменения любого другого файла, который test.py
Да, проблема была: у меня был такой код, и я не хотел их менять. После обсуждения freenode # python я решил реорганизовать другой файл (здесь foo.py), так что будет лучше и чище – zalun
@zalun есть ссылка на это обсуждение? Мне это интересно! – brandizzi
не знаю - я только что нашел, что ничего не регистрирую ... – zalun