"""Logging adapter tests.""" from unittest.mock import MagicMock from kafka_utils.consumer.source.mapping import EventSourceMessage from content_utils.logging.cdc_logging import ContentLambdaLoggerCDC def test_logger(mock_event): """Test logger.""" mock_app_logger = MagicMock() mock_logger = ContentLambdaLoggerCDC(mock_app_logger) for key, event in EventSourceMessage(mock_event): mock_logger.start(event, key) mock_logger.set_data(status='success', result='foo') mock_logger.end() assert mock_app_logger.info.call_count == 4 mock_app_logger.info.assert_called_with({ 'status': 'success', 'result': 'foo', 'event_key': 'cdc.artRelations.releases-1', 'product_id': 2, 'message': 'success: product_id=2 result="foo" event_key=cdc.artRelations.releases-1', 'operation': 'c', 'queue_id': '' }) mock_logger.start() mock_logger.end() mock_app_logger.error.assert_called_with({ 'status': 'error', 'result': '', 'event_key': '', 'product_id': '', 'message': 'error', 'operation': '', 'queue_id': '' }) def test_logger_empty_msk_message(mock_empty_event): """Test logging an empty event.""" mock_app_logger = MagicMock() mock_logger = ContentLambdaLoggerCDC(mock_app_logger) for key, event in EventSourceMessage( mock_empty_event): mock_logger.start(event, key) mock_logger.set_data(status='skip', result='foo') mock_logger.end() mock_app_logger.warning.assert_called_with({ 'status': 'skip', 'result': 'foo', 'event_key': 'cdc.artRelations.releases-1', 'product_id': '', 'message': 'skip: result="foo" event_key=cdc.artRelations.releases-1', 'operation': '', 'queue_id': '' }) def test_logger_captures_queue_id(mock_review_queue_event): """Test logging the review queue id.""" mock_app_logger = MagicMock() mock_logger = ContentLambdaLoggerCDC(mock_app_logger) for key, event in EventSourceMessage( mock_review_queue_event): mock_logger.start(event, key) mock_logger.set_data(status='skip', result='foo') mock_logger.end() mock_app_logger.warning.assert_called_with({ 'status': 'skip', 'result': 'foo', 'event_key': 'cdc.contentReview.reviewQueue-1', 'product_id': 4, 'message': ( 'skip: product_id=4 queue_id=4 ' 'result="foo" event_key=cdc.contentReview.reviewQueue-1' ), 'operation': 'u', 'queue_id': 4 })