Модульный тест-макет AWS-лямбда-функции с глобальным разделом Python - PullRequest
0 голосов
/ 05 июня 2019

Я пишу Python-лямбду с инициализацией во внешнюю службу в глобальном разделе лямбды.Как мне посмеяться над этой внешней зависимостью, которая инициализируется при создании моего класса?

data_load.py

from elasticsearch import Elasticsearch,

# Global section - executed once for the life time of the container
def get_elastic_search_connection():
    try:
        client = Elasticsearch(
            hosts=[{'host': "host", 'port': 9191}],
            use_ssl="true",
            verify_certs="true",
            connection_class=RequestsHttpConnection)
        return client
    except Exception as e:
        LOGGER.error("Unable to connect to ES")
        exit(1)

es_client = get_elastic_search_connection()


# handler section - executed once per function invocation
def lambda_handler(event, context):
    es_client.bulk(body="body", index="index", doc_type="doc", _source=False)

В моем тесте, как только оператор импорта импортирует data_load.pyон пытается инициализировать глобальный раздел лямбды, который пытается установить http-соединение с адресом хоста.Как создать частичный макет data_loay.py, чтобы я мог протестировать метод lambda_handler?Es_client должен быть инициализирован в глобальном разделе.Как мне добавить зависимости в глобальный раздел?

test_data_load.py

import unittest
import search_lambda.data_load.data_load


class TestDatLoad(unittest.TestCase):

    def test_data_load(self):
        print("Hello")


if __name__ == '__main__':
    unittest.main()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...