视图中的模拟/补丁功能


from flask import request
from flask.views import MethodView
from unittest.mock import patch
from router.views.time_view import (
_utcnow
)
class StateSetupView(MethodView):
@app.route("/state-setup", methods=['POST'])
def post():
print(f"Non-mocked version: {_utcnow()}")
with patch('router.views.time_view._utcnow', return_value = "LOL"):
print(f"Mocked version: {_utcnow()}")

我似乎无法在运行时模拟函数的返回值。上面的代码在两个实例中都返回相同的值。我不想把它封装在pytest中,这需要在视图中工作。

只需简单地直接替换函数即可。

router.views.time_view._utcnow = lambda: 12346789

最新更新