Я пишу модульный тест для моей лямбда-функции, используя pytest. Я не могу понять, как мне передать параметры моего события в вызов функции. Я узнал, что это может быть достигнуто с помощью @ pytest.fixture. Я очень, очень плохо знаком с Python и pytest. Поверьте, я использую исправления неправильно. Пожалуйста, помогите мне !!
Ниже представлен мой лямбда-обработчик:
lambda_service.py
def lambda_handler(event, context):
logger.info('Event received: ' + json.dumps(event))
try:
sort = (event['sort'])
size = int(event['size'])
page = int(event['page'])
list_response = MyService().get_people_list(sort, size, page)
logger.info(list_response)
except Exception as e:
logger.error("Unable to fetch details")
logger.exception(e)
return list_response
Это мой тестовый класс-
class TestServiceHandler:
@pytest.fixture
def event(self):
return {
"sort": "asc",
"size": 5,
"page": 0
}
@pytest.fixture
def context(self):
return None
def test_lambda_handler(self):
result = lambda_service.lambda_handler(self.event, self.context)
assert_valid_schema(result, 'vendor_list.json')
И я получаю ошибку ниже при запуске этого теста
line 17, in lambda_handler
sort = (event['sort'])\nTypeError: 'method' object is not subscriptable"
Хотя я передаю событие и контекст в фикстурах, он все еще ссылается на event[sort]
внутри lambda_handler
.