Wis*_*rew 7 python testing unit-testing mocking python-mock
我正在为一些检查值的代码编写测试os.environ(我知道这不是最优的,但我必须使用它).我想在测试期间从os.environ中删除一个条目.我不确定mock是否支持这个.我知道patch.dict可以用来修改项目,但我希望删除键/值对.我想沿着这些方向做点什么:
print os.environ
{ ... , 'MY_THING': 'foo', ... }
with mock.patch.dict.delete('os.environ', 'MY_THING'):
# run the test
# ( 'MY_THING' in os.environ ) should return False
# everything back to normal now
print os.environ
{ ... , 'MY_THING': 'foo', ... }
Run Code Online (Sandbox Code Playgroud)
有没有办法执行这样的壮举?
bmh*_*kim 12
mock.patch.dict并不像您的样本所需的代码.patch.dict是一个需要参数的函数.您可能想要像这样使用它:
>>> import os
>>> import mock
>>> with mock.patch.dict('os.environ'):
... del os.environ['PATH']
... print 'PATH' in os.environ
...
False
>>> print 'PATH' in os.environ
True
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1960 次 |
| 最近记录: |