如何在此测试模块(MUT)中进行修补和模拟 getLogger:
# Start of the module under test
import logging
log = logging.getLogger('some_logger')
# ...
我想要做:
mock_logging.getLogger.return_value = Mock()
但是我mock_logging在导入MUT之前无法创建,但是导入MUT已经调用了getLogger...
我正在尝试创建一个带有模拟功能的文档测试,该功能位于单独的模块中,并按如下方式导入
from foomodule import foo
def bar():
    """
    >>> from minimock import mock
    >>> mock('foo', nsdicts=(bar.func_globals,), returns=5)
    >>> bar()
    Called foo()
    10
    """
    return foo() * 2
import doctest
doctest.testmod()
foomodule.py:
def foo():
    raise ValueError, "Don't call me during testing!"
这失败了。
如果我将 import 更改为import foomodule 并在各处使用foomodule.foo那么它就可以工作。
但是对于通过上述方式导入的模拟函数有什么解决方案吗?
我正试图在我正在编写的一些代码中达到100%的测试覆盖率.但是,下面的代码块给了我麻烦.
try:
    from south.modelsinspector import add_introspection_rules
    add_introspection_rules([], ["^localized_recurrence\.duration_field\.DurationField"])
except ImportError:
    pass
上面的代码是我测试模块的一部分.我需要在ImportError分支后面创建一个测试(不修改上面的代码).
我怎样才能以编程方式导致ImportError发生,而只在我的测试中编写代码?