问题描述
我不是一个新的开发者,但我是 Python 的新手。
我正在修改一个现有例程,用于检查环境变量中的令牌。如果令牌在环境中不存在,我正在修改它以查看 .netrc
并且我想测试它,但我不知道如何模拟丢失的文件。代码如下所示。
def _get_path() -> str:;
"""Get personal access token."""
pat = os.environ["MY_TOKEN"]
if not pat:
try:
pat = netrc.netrc().authenticators('my.site')[2]
except netrc.NetrcParseError as ne:
print(f"Parse error in ${ne.filename} at ${ne.lineno}: ${ne.msg})
else:
raise ValueError('No PAT found')
return pat
这默认查找 $HOME/.netrc
,它存在于我的环境中,但可能不存在于其他开发者环境中。它肯定不会存在于测试环境中。
我很确定我可以弄清楚如何测试错误的 .netrc
,但我似乎无法弄清楚如何使用 pytest、mock 或 mockito 来测试丢失的 $HOME/.netrc
不管真实的存在与否。
我该怎么做?
编辑:澄清一下,测试环境可能有 MY_TOKEN 变量集和/或可能有 $HOME/.netrc
...我如何测试 $HOME/.netrc
的不存在,无论它是否存在是否存在于测试环境中?
解决方法
这听起来是使用 if not os.path.exists(filepath):