【发布时间】:2012-09-19 05:15:58
【问题描述】:
我需要修补 os.listdir 和其他 os 函数来测试我的 Python 函数。但是当它们被修补时,import 语句会失败。是否可以仅在单个模块(真正的模块)内修补此功能,并让 tests.py 正常工作?
这是一个破坏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,并测试以查看正常功能。
【问题讨论】:
标签: python unit-testing python-mock