Python 使用pytest修补/取消修补装饰器
我正试着给一个装饰师打补丁。我使用的测试框架是pytest。我能够成功地修补它。但是,补丁在整个测试过程中都保持不变,因此我无法测试装饰器本身 下面是一个示例代码 decorators.pyPython 使用pytest修补/取消修补装饰器,python,pytest,python-unittest,python-decorators,Python,Pytest,Python Unittest,Python Decorators,我正试着给一个装饰师打补丁。我使用的测试框架是pytest。我能够成功地修补它。但是,补丁在整个测试过程中都保持不变,因此我无法测试装饰器本身 下面是一个示例代码 decorators.py def decorator(resolver): def wrap(*args, **kwargs): kwargs.setdefault("additional_value", <some_value>) return resolve
def decorator(resolver):
def wrap(*args, **kwargs):
kwargs.setdefault("additional_value", <some_value>)
return resolver(*args, **kwargs)
return wrap
我也尝试过停止这个补丁。但这似乎也不起作用
@pytest.fixture
def patch_reset_database_alias(request):
decorator_patch.stop()
importlib.reload(decorators)
def reset_patch():
decorator_patch.start()
request.addfinalizer(reset_patch)
我不太清楚这里缺少了什么,我如何才能让它发挥作用
谢谢
@pytest.fixture
def patch_reset_database_alias(request):
decorator_patch.stop()
importlib.reload(decorators)
def reset_patch():
decorator_patch.start()
request.addfinalizer(reset_patch)