У меня есть тест, который проверяет наличие определенного c (полезного) сообщения об ошибке, когда требуемый пакет недоступен.
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')
Однако pkg
равно обычно доступно, так как другие тесты полагаются на это. В настоящее время я настроил дополнительный виртуальный env без pkg
только для этого теста. Это выглядит как перебор.
Можно ли "спрятать" установленный пакет в модуле или функции?