首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python模拟缓存方法

Python模拟缓存方法
EN

Stack Overflow用户
提问于 2018-08-07 17:42:02
回答 1查看 441关注 0票数 1

我有一个缓存方法的类:

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的。我认为它有一些需要缓存的东西。我做错了什么?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51723625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档