我正在编写一个API客户端库。该库旨在支持Python 2.7+和Python 3+。
现在编写测试并尝试使用MagicMock
和patch
。根据此处的文档https://cpython-test-docs.readthedocs.io/en/latest/library/unittest.mock.htmlunittest.mock
,如果安装mock
(使用pip install mock==3.0.5
),则存在backport 。但是,当我将其安装在docker映像中时,该行如下:
from unittest.mock import patch
仍然失败:
Traceback (most recent call last):
File "/opt/conda/envs/py27/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/opt/conda/envs/py27/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/library_wq-api-utils/wq_api_utils/tests/tests.py", line 3, in <module>
from unittest.mock import patch
ImportError: No module named mock
我可能对文档感到困惑,但是任何使相同代码在python 2.7和3.8中运行的帮助都将不胜感激。谢谢!
一种可能的解决方案是使用try-except:
try:
from unittest.mock import patch, MagicMock
except ImportError:
from mock import patch, MagicMock
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句