如何在Python 3.8+和Python 2.7+中使用unittest.mock包?

交换

我正在编写一个API客户端库。该库旨在支持Python 2.7+和Python 3+。

现在编写测试并尝试使用MagicMockpatch根据此处的文档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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Python 3中使用unittest.mock修补input()

来自分类Dev

如何在Python 3项目中使用Python 2软件包?

来自分类Dev

如何在Python 3中使用flake8?

来自分类Dev

如何在Python 3.5中使用unittest.mock模拟导入的库方法?

来自分类Dev

导入结构在Python 2和3中都可以在包中使用,也可以在外面使用吗?

来自分类Dev

如何在AS3的类和包中使用按钮

来自分类Dev

在python 2和3中使用`bytes`

来自分类Dev

如何在Python 3中使用绝对导入来导入位于其父目录中的包?

来自分类Dev

如何在Python 3中使用PyPDF2计算边界框

来自分类Dev

如何在python 2和3中都覆盖?

来自分类Dev

如何在Python中使用.encode('utf-8')?

来自分类Dev

使用Python 3和Windows 7进行定时输入

来自分类常见问题

如何使用Homebrew在Mac上安装Python 2和3?

来自分类Dev

如何在Spyder 3中使用Python 3?

来自分类Dev

如何转换list1中的list = [1,2,[3,4],[5,6],7,[8,9,10]] = [1,2,3,4,5,6,7,8 ,9,10]在python中?

来自分类Dev

如何在Java 8中使用Java 7 HashMap?

来自分类Dev

如何在python中使用altair包加载和绘制csv文件?

来自分类Dev

在Python 2和Python 3中使用“ + =”与“ extend”进行串联

来自分类Dev

如何在Python软件包中使用日志记录?

来自分类Dev

在Python 3和Python 2中处理CSV中的非UTF8字符

来自分类Dev

如何在Python 3中使用wxPython?

来自分类Dev

如何在Python3中使用HTTP代理?

来自分类Dev

如何在Python 3.4中使用pip 3?

来自分类Dev

如何在python 3中使用inputstream?

来自分类Dev

如何在Python 3中使用cmp()?

来自分类Dev

如何在python 3中使用urllib?

来自分类Dev

如何在Python3中的类中使用Truediv?

来自分类Dev

如何在Python 3中使用urllib中的basejoin

来自分类Dev

如何在python中使用位移指定3GB?

Related 相关文章

  1. 1

    在Python 3中使用unittest.mock修补input()

  2. 2

    如何在Python 3项目中使用Python 2软件包?

  3. 3

    如何在Python 3中使用flake8?

  4. 4

    如何在Python 3.5中使用unittest.mock模拟导入的库方法?

  5. 5

    导入结构在Python 2和3中都可以在包中使用,也可以在外面使用吗?

  6. 6

    如何在AS3的类和包中使用按钮

  7. 7

    在python 2和3中使用`bytes`

  8. 8

    如何在Python 3中使用绝对导入来导入位于其父目录中的包?

  9. 9

    如何在Python 3中使用PyPDF2计算边界框

  10. 10

    如何在python 2和3中都覆盖?

  11. 11

    如何在Python中使用.encode('utf-8')?

  12. 12

    使用Python 3和Windows 7进行定时输入

  13. 13

    如何使用Homebrew在Mac上安装Python 2和3?

  14. 14

    如何在Spyder 3中使用Python 3?

  15. 15

    如何转换list1中的list = [1,2,[3,4],[5,6],7,[8,9,10]] = [1,2,3,4,5,6,7,8 ,9,10]在python中?

  16. 16

    如何在Java 8中使用Java 7 HashMap?

  17. 17

    如何在python中使用altair包加载和绘制csv文件?

  18. 18

    在Python 2和Python 3中使用“ + =”与“ extend”进行串联

  19. 19

    如何在Python软件包中使用日志记录?

  20. 20

    在Python 3和Python 2中处理CSV中的非UTF8字符

  21. 21

    如何在Python 3中使用wxPython?

  22. 22

    如何在Python3中使用HTTP代理?

  23. 23

    如何在Python 3.4中使用pip 3?

  24. 24

    如何在python 3中使用inputstream?

  25. 25

    如何在Python 3中使用cmp()?

  26. 26

    如何在python 3中使用urllib?

  27. 27

    如何在Python3中的类中使用Truediv?

  28. 28

    如何在Python 3中使用urllib中的basejoin

  29. 29

    如何在python中使用位移指定3GB?

热门标签

归档