"""Test poll_artwork_asset_status.""" import json from unittest.mock import MagicMock from unittest.mock import patch import pytest from src.index import handler @pytest.mark.parametrize( 'context_json,loaded_json,asset_type', [ ('context_json_artwork', 'loaded_json_artwork', 'cover'), ('context_json_audio', 'loaded_json_audio', 'audio') ]) @patch('src.index.config.SNOWFLAKE_S3_LOCATION', 'folder') @patch('src.index.config.SNOWFLAKE_S3_BUCKET', 'bucket_name') @patch('src.index.config.get_current_logger') @patch('src.index.log_catalog_action') def test_handler(mock_log_catalog_action, mock_logger, context_json, loaded_json, asset_type, request): """Test handler.""" handler(json.loads(request.getfixturevalue(context_json)), None) mock_log_catalog_action.assert_called_with( 'bucket_name', 'folder', request.getfixturevalue(loaded_json), 'insert', asset_type, 'Failed', 'Test Error: Test Cause' ) @patch('src.index.config.SNOWFLAKE_S3_LOCATION', 'folder') @patch('src.index.config.SNOWFLAKE_S3_BUCKET', 'bucket_name') @patch('src.index.config.get_current_logger') def test_handler_from_parser(mock_logger, context_json_parser): """Test handler for parser error.""" mock_error_log = MagicMock(name='error') mock_logger.return_value = mock_error_log handler(json.loads(context_json_parser), None) mock_error_log.error.called_once_with( 'Fatal parsing error for bucket/key: Test Error: Test Cause')