"""Test handler.""" from unittest.mock import MagicMock, patch import index @patch('index.load_ddex_json') @patch('index.logger') @patch('index.graphql') @patch('index.create_product_marketing_blurb') @patch('index.update_product_marketing_blurb') @patch('index.get_product_marketing_blurb') def test_create_marketing_blurb( mock_get_marketing_blurb, mock_update_marketing_blurb, mock_create_marketing_blurb, mock_graphql, mock_current_logger, mock_load_ddex_json, mock_event): """Test create marketing blurb.""" mock_logger = MagicMock(name='info') mock_current_logger.return_value = mock_logger mock_load_ddex_json.return_value = mock_event mock_graphql_conn = MagicMock(name='GraphQLConnector') mock_graphql.return_value = mock_graphql_conn mock_get_marketing_blurb.return_value = None index.handler(mock_event, None) mock_graphql_conn.set_headers.called_with( {'Orchard-User-Id': None}) mock_create_marketing_blurb.assert_called_with( { 'subject': 'SME', 'client': 'MARKETING_PROGRAM_INFO_OA_CLIENT', 'description': 'blurb blurb blurb', 'marketingProgram': 'MARKETING_BLURB', 'entityId': 234324, 'entityType': 'MARKETING_PROGRAM_INFO_PRODUCT', }, mock_graphql.GraphQLConnector() ) mock_update_marketing_blurb.assert_not_called() @patch('index.load_ddex_json') @patch('index.logger') @patch('index.graphql') @patch('index.create_product_marketing_blurb') @patch('index.update_product_marketing_blurb') @patch('index.get_product_marketing_blurb') def test_update_marketing_blurb( mock_get_marketing_blurb, mock_update_marketing_blurb, mock_create_marketing_blurb, mock_graphql, mock_current_logger, mock_load_ddex_json, mock_event): """Test create marketing blurb.""" mock_logger = MagicMock(name='info') mock_current_logger.return_value = mock_logger mock_load_ddex_json.return_value = mock_event mock_graphql_conn = MagicMock(name='GraphQLConnector') mock_graphql.return_value = mock_graphql_conn mock_get_marketing_blurb.return_value = { 'productId': 234324, 'marketingProgramInfos': [ { 'marketingProgramInfoId': 233, 'subject': 'SME', 'client': 'oa', 'description': 'blurb blurb blurb', 'marketingProgram': 15, 'entityId': 234324, 'entityType': 'release', }, { 'marketingProgramInfoId': 234, 'subject': None, 'client': 'alw', 'description': 'highlights highlights', 'marketingProgram': 21, 'entityId': 2131, 'entityType': 'project', } ] } index.handler(mock_event, None) mock_create_marketing_blurb.assert_not_called() mock_update_marketing_blurb.assert_called_with( 233, { 'subject': 'SME', 'client': 'MARKETING_PROGRAM_INFO_OA_CLIENT', 'description': 'blurb blurb blurb', 'marketingProgram': 'MARKETING_BLURB', 'entityId': 234324, 'entityType': 'MARKETING_PROGRAM_INFO_PRODUCT', }, mock_graphql.GraphQLConnector() ) @patch('index.load_ddex_json') @patch('index.logger') @patch('index.graphql') @patch('index.create_product_marketing_blurb') @patch('index.update_product_marketing_blurb') @patch('index.get_product_marketing_blurb') def test_no_marketing_blurb_found( mock_get_marketing_blurb, mock_update_marketing_blurb, mock_create_marketing_blurb, mock_graphql, mock_current_logger, mock_load_ddex_json, mock_event): """Test create marketing blurb.""" mock_logger = MagicMock(name='info') mock_current_logger.return_value = mock_logger mock_event['product']['marketing_blurb'] = None mock_load_ddex_json.return_value = mock_event mock_graphql_conn = MagicMock(name='GraphQLConnector') mock_graphql.return_value = mock_graphql_conn index.handler(mock_event, None) mock_get_marketing_blurb.assert_not_called() mock_create_marketing_blurb.assert_not_called() mock_update_marketing_blurb.assert_not_called()