"""Unit tests for replace_placeholder_upc lambda.""" from unittest.mock import patch from src.index import handler @patch('src.index.get_placeholder_upc') def test_upc_replaced_with_already_existed_placeholder_upc( mock_get_placeholder_upc, context_event): """Test upc is replaced by placeholder_upc.""" input_upc = '9999999' placeholder_upc = '88888888' context_event['product']['upc'] = input_upc mock_get_placeholder_upc.return_value = placeholder_upc output = handler(context_event, None) mock_get_placeholder_upc.assert_called_with(input_upc) assert output['product']['upc'] == placeholder_upc assert output['product']['display_upc'] == input_upc assert output['placeholder_upc_ingestion'] is True @patch('src.index.get_product_by_upc') @patch('src.index.get_placeholder_upc') def test_run_is_marked_as_placeholder_upc(mock_get_placeholder_upc, mock_get_product_by_upc, context_event): """Test run is marked as placeholder upc.""" input_upc = '9999999' context_event['product']['upc'] = input_upc mock_get_placeholder_upc.return_value = None mock_get_product_by_upc.return_value = {'notForDistribution': 'N', 'status': 'label_processing'} output = handler(context_event, None) mock_get_placeholder_upc.assert_called_with(input_upc) mock_get_product_by_upc.assert_called_with(input_upc) assert output['product']['upc'] is None assert output['product']['display_upc'] == input_upc assert output['placeholder_upc_ingestion'] is True @patch('src.index.get_product_by_upc') @patch('src.index.get_placeholder_upc') def test_run_is_marked_as_placeholder_upc_for_deleted_product( mock_get_placeholder_upc, mock_get_product_by_upc, context_event): """Test is marked as placeholder upc for deleted_product.""" input_upc = '9999999' context_event['product']['upc'] = input_upc mock_get_placeholder_upc.return_value = None mock_get_product_by_upc.return_value = {'notForDistribution': 'N', 'deletions': 'Y', 'status': 'in_content'} output = handler(context_event, None) mock_get_placeholder_upc.assert_called_with(input_upc) mock_get_product_by_upc.assert_called_with(input_upc) assert output['product']['upc'] is None assert output['product']['display_upc'] == input_upc assert output['placeholder_upc_ingestion'] is True @patch('src.index.get_product_by_upc') @patch('src.index.get_placeholder_upc') def test_do_nothing_for_in_content_products(mock_get_placeholder_upc, mock_get_product_by_upc, context_event): """Test do nothing for in content products.""" input_upc = '9999999' context_event['product']['upc'] = input_upc mock_get_placeholder_upc.return_value = None mock_get_product_by_upc.return_value = {'notForDistribution': 'N', 'deletions': 'N', 'status': 'in_content'} output = handler(context_event, None) mock_get_placeholder_upc.assert_called_with(input_upc) mock_get_product_by_upc.assert_called_with(input_upc) assert output['product']['upc'] == input_upc assert output['product']['display_upc'] is None assert output['placeholder_upc_ingestion'] is False @patch('src.index.get_product_by_upc') @patch('src.index.get_placeholder_upc') def test_do_nothing_for_non_sme_product(mock_get_placeholder_upc, mock_get_product_by_upc, context_event): """Test do nothing for non sme , not deleted in_content product.""" input_upc = '9999999' context_event['product']['upc'] = input_upc mock_get_placeholder_upc.return_value = None mock_get_product_by_upc.return_value = {'notForDistribution': 'N', 'deletions': 'N', 'status': 'in_content'} output = handler(context_event, None) mock_get_placeholder_upc.assert_called_with(input_upc) mock_get_product_by_upc.assert_called_with(input_upc) assert output['product']['upc'] == input_upc assert output['product']['display_upc'] is None assert output['placeholder_upc_ingestion'] is False