我有一个现有的上下文管理器,它需要进行多个测试。我认为与其在每个测试中编写一个with
块,不如从该上下文管理器中制作一个固定装置,并用@pytest.mark.usefixtures("my_fixture")
装饰该测试会更好。
我可以将上下文管理器重新实现为一种固定装置,但这似乎是在重复代码。因此,我想在新的固定装置中引用原始的上下文管理器。
这是我所拥有的:
import my_context_manager def my_fixture(arg1, arg2): with my_context_manager(arg1, arg2) as c: yield c
这是将现有上下文管理器转换为固定装置的适当方法吗?
[我应该提一下,我知道contextlib.ContextDecorator
用于编写可用作装饰器的上下文管理器。但是我的上下文管理器需要参数,并且它们在@my_context_decorator(arg1, arg2)
之类的语句中时不会被识别。
我有一个现有的上下文管理器,它需要进行多个测试。与其在每个测试中编写一个with块,不如在此上下文管理器中制作一个固定装置会更好,并且...
创建了一个简单的上下文管理器,将其用作固定装置,并在测试中调用了该固定装置。
createcontextmanager.py