Я пишу 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()