Облачные функции Google - тестирование / проверка подлинности для функций, запускаемых по протоколу HTTP? - PullRequest
1 голос
/ 07 марта 2019

У меня есть API, созданный с использованием облачных функций GCP, я знаю, что он построен на Flask, однако само приложение не доступно пользователю.

В документации по тестированию для облачных функций GCP используется объект Mock из unittest, встроенный в Python.

Однако у меня есть декоратор аутентификации, который я могу использовать, и он определяет, есть ли соответствующий пароль в x-api-key в заголовке.

"""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

Затем я могу применить его к облачным функциям Google. Функции:

@auth
@log_func
def frontend_query(request):
    request_json = request.get_json(silent=True)

    # Do Something Else

Вы можете использовать mock для создания request_json, но как мне также получить поддельные данные заголовка в request.headers?

...