我有一个测试,可确保在所需的包不可用时引发特定的(有用的)错误消息。
def foo(caller):
try:
import pkg
except ImportError:
raise ImportError(f'Install "pkg" to use {caller}')
pkg.bar()
with pytest.raises(ImportError, match='Install "pkg" to use test_function'):
foo('test_function')
Run Code Online (Sandbox Code Playgroud)
然而,pkg 是一般可用,其他的测试依赖于它。目前,我设置了一个额外的虚拟环境,而 pkg不仅仅是为了这个测试。这似乎有点矫枉过正。
是否可以在模块或函数中“隐藏”已安装的包?