"""Test logic.""" from unittest.mock import patch from src.logic import get_formatted_product_status_data from src.logic import GQL_QUERY @patch('content_utils.connectors.graphql.LambdaGraphQLConnector.execute') def test_logic_fetch(mock_execute): """Test fetch logic.""" mock_execute.return_value = { 'data': { 'product': { 'status': 'foo' } } } actual = get_formatted_product_status_data(1) assert actual == { 'release_status': 'foo', 'error_correction_status': '', 'release_correction_id': '' } mock_execute.assert_called_with(GQL_QUERY, {'id': '1'}) @patch('content_utils.connectors.graphql.LambdaGraphQLConnector.execute') def test_logic_fetch_with_correction(mock_execute): """Test getting product status with a correction.""" mock_execute.return_value = { 'data': { 'product': { 'status': 'foo', 'releaseCorrection': { 'status': 'bar' } } } } actual = get_formatted_product_status_data(1) assert actual == { 'release_status': 'foo', 'error_correction_status': 'bar', 'release_correction_id': '' } @patch('content_utils.connectors.graphql.LambdaGraphQLConnector.execute') def test_logic_fetch_with_correction_id(mock_execute): """Test getting product status with a correction id.""" mock_execute.return_value = { 'data': { 'product': { 'status': 'foo', 'releaseCorrection': { 'status': 'bar', 'releaseCorrectionId': 123 } } } } actual = get_formatted_product_status_data(1) assert actual == { 'release_status': 'foo', 'error_correction_status': 'bar', 'release_correction_id': 123 }