"""Integration tests for lambda function.""" import operator import os import pytest from tests.integration.conftest import check_db_empty from tests.integration.conftest import dockerized_lambda_api_client from tests.integration.conftest import get_table_row_count @pytest.mark.jira('ACC-6290') def test_invoke_lambda(basic_headers): """Assert lambda action.""" dockerized_lambda = dockerized_lambda_api_client(basic_headers) # test file location: # s3://qa-abacus-adjustments/test_fixtures/adjustment_file_import_lambda_fixture.xlsx # this batch size set to 2 to cover both flows in # adjustment_file_import/processor.py#L270-L283 assert os.getenv('MYSQL_BATCH_SIZE') == '2' check_db_empty(operator.le, 'worksheet_adjustment') check_db_empty(operator.le, 'worksheet_adjustment_detail') body = { 'abacus_event_id': 1, 'target_type': 'statement_period_adjustment_file', 'target_id': '1', 'statement_period_id': 123, 'event_name': 'adjustment_file_worksheet_import', 'event_date': '2021-07-11T11:20:35.45+01:00' } res = dockerized_lambda.post_lambda('2015-03-31', body) assert res.status_code == 200 assert 'status' in res.json(), \ f"error type was: {res.json()['errorType']}, " \ f"error message was: {res.json()['errorMessage']}" assert res.json()['status'] == 'OK' check_db_empty(operator.gt, 'worksheet_adjustment') check_db_empty(operator.gt, 'worksheet_adjustment_detail') assert get_table_row_count('worksheet_adjustment') == 9 assert get_table_row_count('worksheet_adjustment_detail') == 6