Ответы пользователя по тегу Flask
  • Как тестировать сервис А, который обращается к сервису Б, не поднимая локально сервиса Б (Python, Flask)?

    @alenov Автор вопроса
    Программист
    Решил задачу условным импортированием.

    import importlib
    
    def auth(fn):
        @wraps(fn)
        def wrapper(*args, **kwargs):
            # В переменной конфигурации EXT_API_MODULE хранится имя модуля, который содержит класс extAPI
            # для генерации вызовов к внешним API. Модулей два: ext_api.py и exp_api_test.py
            # В первом реальные обработчики для продакшена, EXT_API_MODULE="exp_api"
            # Во втором - заглушки для тестов, EXT_API_MODULE="exp_api_test"
            ext_api = importlib.import_module('application.{0}'.format(current_app.config['EXT_API_MODULE']))
            token = request.headers.get('X-Auth-Token')
            if not get_from_cache(token):
                res = ext_api.extAPI().auth_service(token)
                if res.status_code == 200:
                    set_to_cache(token)
                    return fn(*args, **kwargs)
    
                return Responce('{"error": "Invalid token"}', status=404)
    
        return wrapper


    Всем спасибо за участие!
    Ответ написан
    Комментировать