def test_download_document_error(boto3_client_mock, pg_connect_mock, db_config, event, caplog): s3_mock = MagicMock() s3_mock.download_file.side_effect = Exception("Download document error") boto3_client_mock.return_value = s3_mock lambda_handler(event, None) assert all_in(["ERROR", "Download document"], caplog.text)
def test_import_document_success(boto3_client_mock, os_remove_mock, put_partner_in_db_ids, success_event, rds, caplog): lambda_handler(success_event, None) assert all_not_in(["CRITICAL", "ERROR", "WARNING"], caplog.text) assert all_in(["INFO", "SUCCESS", "IMPORT_SUCCESS"], caplog.text) product_count = get_dummy_product_count(rds) assert product_count == 2
def test_non_existing_product_error(boto3_client_mock, os_remove_mock, put_partner_in_db_ids, success_event, rds, caplog): lambda_handler(success_event, None) assert all_in(["ERROR", "Put record in database", "IMPORT_FAILURE"], caplog.text) infringement_count = get_dummy_infringement_count(rds) assert infringement_count == 0
def test_process_request_success(boto3_client_mock, pg_connect_mock, os_remove_mock, db_config, success_event, caplog): rds_mock = MagicMock() pg_connect_mock.return_value = rds_mock lambda_handler(success_event, None) assert all_in(["INFO", "SUCCESS", "IMPORT_SUCCESS"], caplog.text) rds_mock.commit.assert_called() rds_mock.close.assert_called_once()
def test_validate_record_error( boto3_client_mock, pg_connect_mock, os_remove_mock, db_config, invalid_records_above_threshold_event, caplog, ): lambda_handler(invalid_records_above_threshold_event, None) assert all_in(["ERROR", "Validate record"], caplog.text)
def test_put_record_in_db_error(boto3_client_mock, pg_connect_mock, os_remove_mock, db_config, success_event, caplog): rds_mock = MagicMock() pg_connect_mock.return_value = rds_mock rds_mock.cursor.side_effect = Exception("Put record in database error") lambda_handler(success_event, None) assert all_in(["ERROR", "Put record in database"], caplog.text) rds_mock.rollback.assert_called() rds_mock.close.assert_called_once()
def test_process_request_with_invalid_records_above_threshold_error( boto3_client_mock, pg_connect_mock, os_remove_mock, db_config, invalid_records_above_threshold_event, caplog, ): lambda_handler(invalid_records_above_threshold_event, None) assert all_in(["ERROR", "IMPORT_FAILURE"], caplog.text)
def test_parse_empty_document_error( boto3_client_mock, pg_connect_mock, os_remove_mock, db_config, empty_document_event, caplog, ): lambda_handler(empty_document_event, None) assert all_in(["WARNING", "Empty document", "EMPTY_DOCUMENT"], caplog.text)
def test_process_request_with_invalid_records_below_threshold_success( boto3_client_mock, pg_connect_mock, os_remove_mock, db_config, invalid_records_below_threshold_event, caplog, ): lambda_handler(invalid_records_below_threshold_event, None) assert all_in(["WARNING", "SUCCESS", "FAILED_RECORDS_BELOW_THRESHOLD"], caplog.text)
def test_move_document_to_processed_error( boto3_client_mock, pg_connect_mock, os_remove_mock, db_config, success_event, caplog ): s3_mock = MagicMock() boto3_client_mock.return_value = s3_mock s3_mock.copy_object.side_effect = Exception("Move document to processed error") lambda_handler(success_event, None) assert all_in( ["ERROR", "Move document to processed", "INFO", "SUCCESS", "IMPORT_SUCCESS"], caplog.text, )
def test_parse_non_existing_document_error( boto3_client_mock, pg_connect_mock, os_remove_mock, db_config, non_existing_document_event, caplog, ): lambda_handler(non_existing_document_event, None) assert all_in(["ERROR", "Parse document", "No such file or directory"], caplog.text)
def test_import_document_error( boto3_client_mock, os_remove_mock, put_partner_in_db_ids, invalid_records_above_threshold_event, rds, caplog, ): lambda_handler(invalid_records_above_threshold_event, None) assert all_in(["ERROR", "IMPORT_FAILURE"], caplog.text) product_count = get_dummy_product_count(rds) assert product_count == 2
def test_parse_invalid_document_error( boto3_client_mock, pg_connect_mock, os_remove_mock, db_config, invalid_document_event, caplog, ): lambda_handler(invalid_document_event, None) assert all_in( ["ERROR", "Parse record", "Expecting value", "IMPORT_FAILURE"], caplog.text)
def test_import_document_success( boto3_client_mock, os_remove_mock, put_product_in_db_ids, put_pirate_source_in_db_ids, success_event, rds, post_delete_dummy_infringement, caplog, ): lambda_handler(success_event, None) assert all_not_in(["CRITICAL", "ERROR", "WARNING"], caplog.text) assert all_in(["INFO", "SUCCESS", "IMPORT_SUCCESS"], caplog.text) infringement_count = get_dummy_infringement_count(rds) assert infringement_count == 2
def test_create_s3_client_error(boto3_client_mock, db_config, event, caplog): lambda_handler(event, None) assert all_in(["CRITICAL", "Create S3 client"], caplog.text)
def test_validate_invalid_event_error(db_config, invalid_event, caplog): lambda_handler(invalid_event, None) assert all_in(["ERROR", "Validate request"], caplog.text)
def test_validate_empty_configuration_error(caplog): lambda_handler({}, None) assert all_in(["CRITICAL", "Validate configuration"], caplog.text)
def test_non_existing_partner_error(boto3_client_mock, os_remove_mock, non_existing_partner_event, caplog): lambda_handler(non_existing_partner_event, None) assert all_in(["ERROR", "Put record in database", "IMPORT_FAILURE"], caplog.text)
def test_validate_empty_event_error(db_config, caplog): empty_event = {} lambda_handler(empty_event, None) assert all_in(["ERROR", "Validate request"], caplog.text)
def test_connect_to_rds_error(boto3_client_mock, pg_connect_mock, db_config, event, caplog): lambda_handler(event, None) assert all_in(["CRITICAL", "Connect to RDS"], caplog.text)