"""Test handler.""" from unittest.mock import MagicMock, patch from ddex_ingester_common.schemas.s3_schema import S3Schema import index from constants import queries @patch('index.load_ddex_json') @patch('index.logger') @patch('index.S3Schema.load') @patch('index.upsert_global_marketing_highlights') @patch('index.upsert_territory_marketing_highlights') def test_handler( mock_upsert_territory_marketing_highlights, mock_upsert_global_marketing_highlights, mock_s3schema_load, mock_current_logger, mock_load_ddex_json, mock_event): """Test handler.""" mock_logger = MagicMock(name='info') mock_current_logger.return_value = mock_logger mock_load_ddex_json.return_value = mock_event parsed_ddex = S3Schema().load(mock_event) mock_s3schema_load.return_value = parsed_ddex index.handler(mock_event, None) mock_upsert_global_marketing_highlights.assert_called_with( parsed_ddex.project.marketing_highlights, 123 ) mock_upsert_territory_marketing_highlights.assert_called_with( parsed_ddex.project.marketing_highlights, 123 ) @patch('index.config.graphql_gateway.execute') def test_upsert_global_marketing_highlights( mock_graphql_execute, mock_event): """Test upsert global marketing highlights.""" parsed_ddex = S3Schema().load(mock_event) index.upsert_global_marketing_highlights( parsed_ddex.project.marketing_highlights, 123 ) mock_graphql_execute.assert_called_with( queries.upsert_project_marketing_highlight, { 'data': { 'projectId': 123, 'data': [ {'marketingHighlight': 'global highlights'} ] } }, ) @patch('index.config.graphql_gateway.execute') def test_upsert_territory_marketing_highlights( mock_graphql_execute, mock_event): """Test upsert territory marketing highlights.""" parsed_ddex = S3Schema().load(mock_event) index.upsert_territory_marketing_highlights( parsed_ddex.project.marketing_highlights, 123 ) mock_graphql_execute.assert_called_with( queries.upsert_project_marketing_highlight, { 'data': { 'projectId': 123, 'data': [ { 'marketingHighlight': 'territory highlights', 'countryId': 1, }, { 'marketingHighlight': 'territory highlights', 'countryId': 2, }, ] } }, )