【发布时间】:2016-12-04 12:23:33
【问题描述】:
我的代码提供了使用可选包的可选功能。
当用户导入包含这些可选功能的包时,如果他/她没有安装附加包,则会显示警告。例如:
请安装
optional-package以使用所有功能
为了测试这些可选功能,可选包作为依赖安装在 tox 创建的 virtualenv 中:
# tox.ini
[my-env]
deps = optional-package
问题是我想测试一下:
- 当用户未安装软件包时会显示警告
- 当用户有包时不显示警告
但是,python 似乎没有提供卸载包的方法。
如果同时我需要tox 将其作为依赖项自动安装,我如何创建一个测试来描述用户在其系统上没有可选包的上下文?
【问题讨论】:
-
您可以设置
sys.modules["optional.package"] = None强制后续导入模块失败,并使用imp.reload()重新导入应该警告的模块。
标签: python unit-testing tox