我有一个缓存方法的类:
class Foo:
def __init__(self, package: str):
self.is_installed = functools.lru_cache()(
self.is_installed)
def is_installed():
#implementation here
以及通过在类的实例上循环来调用该方法的代码
try:
if Foo('package').is_installed():
except Exception as e:
print('Could not install')
else:
print('Installed properly')
我试图通过模拟is_installed
方法抛出异常来测试这段代码。
@patch.object(Foo, 'is_installed')
def test_exception_installing_bear(self, mock_method):
mock_method.side_effect = Exception('Something bad')
# code to assert 'could not install' in stdout
但它不起作用。不抛出异常,断言失败。另一方面,输出显示它是installed properly
的。我认为它有一些需要缓存的东西。我做错了什么?
https://stackoverflow.com/questions/51723625
复制相似问题