def foo(self): if retries[0] == 2: retries[0] -= 1 raise OperationFailure('error') elif retries[0] == 1: register_log_exception_hook(hook2) retries[0] -= 1 raise AutoReconnect('error') return "success"
def test_mongo_retry_hook_changes(): retries = [2] self = MagicMock() hook1 = Mock() register_log_exception_hook(hook1) hook2 = Mock() @mongo_retry def foo(self): if retries[0] == 2: retries[0] -= 1 raise OperationFailure('error') elif retries[0] == 1: register_log_exception_hook(hook2) retries[0] -= 1 raise AutoReconnect('error') return "success" foo(self) assert hook1.call_count == 1 assert hook2.call_count == 1
def test_log_exception_hook(): logger = Mock() register_log_exception_hook(logger) log_exception(sentinel.fn, sentinel.e, sentinel.r) assert logger.call_args_list == [call(sentinel.fn, sentinel.e, sentinel.r)]