我在烧瓶应用程序中模拟装饰器时遇到问题。 我已经尝试过monkeypatch,mock.patch,但都无法正常工作
我正在使用python3.7
这是我的代码 在=> app / v1 / views / user_data.py
@r.route('/myroute/<int:user_id>', methods=['GET'])
@verify_token
def ep_intern_midas_user_data_user_id(user_id):
# do some stuff here
return "Done"
在app / v1 / decorators / verify_token.py
def verify_token(view_function):
@wraps(view_function)
def decorated_function(*args, **kwargs):
# do decorator stuff
return decorated_function
在tests / unit_tests / views / user_data.py
中from functools import wraps
from app.v1 import decorators
def mock_decorator():
def decorator(f):
@wraps(f)
def decorated_function(*args, **kwargs):
return 200
return decorated_function
return decorator
# !important thing - import of app after replace
decorators.verify_token = mock_decorator
from app import app
app.testing = True
def test_index():
with app.test_client() as client:
res = client.get('v1/intern/midas/user_data/1')
assert res.status_code == 200
(even with monkeypatch)
===== never works
我希望结果为200,但我却为401,如果调用装饰器而不是模拟器,结果是什么。
感谢帮助