How to throw exception from mocked instance's method?
我想测试的这个演示功能非常直接。
1 2 3 4 5 6 | def is_email_deliverable(email): try: return external.verify(email) except Exception: logger.error("External failed failed") return False |
此函数使用我想要模拟的
但我不知道如何从
我的尝试:
1 2 3 4 5 6 7 8 9 10 11 12 | @patch.object(other_module, 'external') def test_is_email_deliverable(patched_external): def my_side_effect(email): raise Exception("Test") patched_external.verify.side_effects = my_side_effect # Or, # patched_external.verify.side_effects = Exception("Test") # Or, # patched_external.verify.side_effects = Mock(side_effect=Exception("Test")) assert is_email_deliverable("[email protected]") == False |
这个问题声称有答案,但对我不起作用。
您使用了
1 2 3 4 | @patch.object(Class,"attribute") def foo(attribute): attribute.side_effect = Exception() # Other things can go here |
顺便说一句,它不是一个很好的方法来抓住所有的