python - 如何使用 python tox 取消设置环境变量?

标签 python tox

我很了解 tox.ini 文件上的 passenvsetenv 使用,但我面临着一种情况,我想取消定义一些变量,以便它们不包含在通配符 passenv。

示例

[testenv]
passenv = ANSIBLE_*

# I how do I assure that ANSIBLE_INVENTORY is not passed?

最佳答案

引用文档:

tox will take care of environment isolation for you: it will strip away all operating system environment variables not specified via passenv.

也就是说,您只是不提及您不想传递的变量。

对于 passenv,文档说:

You can override these variables with the setenv option.

由于未设置的 shell 变量看起来像一个空字符串,因此您可以尝试将 setenv 更改为 '' 所有您不想传递的变量。它可能有效也可能无效,具体取决于代码如何使用这些变量,因为空环境变量和未设置的环境变量之间存在差异。

我在 tox 文档中没有看到任何有选择地取消设置变量的方法。我建议使用一些比 ANSIBLE_* 弱的通配符,这样它们就不会让您想要保持未设置的变量进入。

另一个解决方案是取消运行 tox 的 shell 中的变量,以便 tox 进程无法访问和传递它们:

#!/bin/sh
unset ANSIBLE_KEYS_TO_KINGDOM
tox "$@"

关于python - 如何使用 python tox 取消设置环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57293456/

相关文章:

python - 如何防止 tox 生成一堆 .egg 目录?

python - 如何使用不同的 python 版本获取 tox 来测试 "named"测试环境?

python - 如何在文本文件 python 上使用 .split() 函数循环

python - 州缩写的正则表达式(python)

python - 如何按名称选择列? (Python & SQLite3)

python - 如何使我的代码可停止? (不杀死/打断)

python - 如何在不同的 pdb(pp) session 之间保存状态?

python - 为什么 TravisCI 找不到我的许可证文件?

python - 如何配置 tox 以获取日志

python - 如何使用 PyTest/tox 测试速度?