我需要修補os.listdir
和其他os
函數來測試我的Python函數。但是當它們被修補時,import
語句失敗。是否有可能只在這個單一的模塊中修補這個函數,並且保持tests.py的正常工作?僅針對一個模塊使用Mock修補功能?
下面是打破import
一個例子:
import os
from mock import patch
# when both isdir and isfile are patched
# the function crashes
@patch('os.path.isdir', return_value=False)
@patch('os.path.isfile', return_value=False)
def test(*args):
import ipdb; ipdb.set_trace()
real_function(some_arguments)
pass
test()
我想real_function
看到修補os.path
,並測試看正常功能。下面
這是一個好主意。其實,我可以創建自己的上下文管理器。 –