我有一个使用GCP Cloud Functions构建的API,我知道它是基于Flask构建的,但是该应用程序本身并未向用户公开。
从用于GCP云功能的Testing Documentation中,它使用来自Python内置的Mock
的{{1}}对象。
但是,我有一个身份验证修饰符,可以将其扔掉,它可以检测标题的unittest
中是否存在适当的密码。
x-api-key
然后我可以将其应用于Google Cloud Functions:
"""Authentication for Cloud Functions."""
from functools import partial, wraps
from flask import request, abort
import config
def auth(func=None):
if func is None:
return partial(auth)
@wraps(func)
def wrap(*args, **kwargs):
if request.headers.get('x-api-key') and request.headers.get('x-api-key') == config.API_KEY:
return func(*args, **kwargs)
else:
abort(401)
return wrap
您可以使用@auth
@log_func
def frontend_query(request):
request_json = request.get_json(silent=True)
# Do Something Else
创建一个mock
,但是如何将伪造的标头数据也放入request_json
中呢?