期望代码引发异常的上下文管理器
expect-exception的Python项目详细描述
预期异常
一个装饰器和上下文管理器来运行您期望的(和想要的)代码提高 一个例外。在
此模块旨在“反转”您编写时try/except
的用法
异常为“良好”分支的代码。它引发了一个
ExceptionNotRaisedError
中未引发预期的异常类型
包装好的代码,要么因为它完成了执行,要么因为另一个,
引发了意外异常。在
例如,可以使用expect_exception
替换以下代码:
defupload_new_file(filename,content)try:some_api.fetch_file(filename)exceptFileNotFoundError:# We don't want to override existing files on SomeService, but SomeApi# doesn't have a method to check if a file exists!passsome_api.upload_file(filename,content)
有了这个:
^{pr2}$或者,您可以使用expect_exception
作为助手的装饰器
方法:
# some_api.pyclassSomeApi(...):...deffetch_file(self,filename):...@expect_exception(FileNotFoundError):defensure_file_missing(self,filename):self.fetch_file(filename)# ---defupload_new_file(filename,content):some_api.ensure_file_missing(filename)some_api.upload_file(filename,content)
使用
fromexpect_exceptionimportexpect_exception# Use either as a @decorator or as a `with` statement context.expect_exception(SomeExceptionType[,SomeExceptionType,...,wrap_unexpected_exception:bool])
参数:
*exception_types: Type[BaseException]
(位置参数):一个或多个 此中预期引发的异常类型(类对象) 上下文。 从这里列出的任何一个继承的异常也将被捕获。在wrap_unexpected_exception: bool
(仅限关键字参数):如果为True,则包装任何ExceptionNotRaisedError
中出现意外异常;如果为False,则 意外异常。 默认为True。在
- 项目
标签: