Mam następującą strukturę:Jak wyśmiać funkcję zdefiniowaną w module pakietu?
|-- 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()
wynikiem python test.py
jest Bar
.
Jak naśmiewać się z printBar
, aby powrócić Foo
, aby printFoo
go wydrukować?
EDIT: Bez modyfikacji jakiegokolwiek innego pliku, który test.py
Tak, problem był - miałem taki kod i nie chciałem ich zmieniać. Po dyskusji na freenode # python zdecydowałem się na refaktoryzację drugiego pliku (tutaj foo.py), więc będzie lepiej i czystszy – zalun
@zalun czy istnieje link do tej dyskusji? Ciekawi mnie to! – brandizzi
Nie mam pojęcia - właśnie stwierdziłem, że nie rejestruję niczego ... – zalun