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