首页 > 解决方案 > 如果启用了 doctest,则导入 mock.call 时出错

问题描述

当我启用doctest并导入时,call我得到了这个异常:

/usr/lib/python3.6/doctest.py:933: in find
    self._find(tests, obj, name, module, source_lines, globs, {})
/usr/lib/python3.6/doctest.py:992: in _find
    if ((inspect.isroutine(inspect.unwrap(val))
/usr/lib/python3.6/inspect.py:516: in unwrap
    raise ValueError('wrapper loop when unwrapping {!r}'.format(f))
E   ValueError: wrapper loop when unwrapping call

像这样导入的调用:

from unittest.mock import MagicMock, call

我看了这个问题ValueError: wrapper loop when unwrapping。重写__getattr__对我来说看起来不是一个干净的解决方案。

作为一种解决方法,我以不同的方式导入和使用call,这有助于:

from unittest import mock

...
mock.call(1)
...

我想知道有没有更好/更清洁的选择来解决这个问题?

标签: pythonpytest

解决方案


推荐阅读