如何使用pytest测试文件不存在?



我不是新手开发人员,但我是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):的好时机

最新更新