"""Tests for tool_log logic.""" from unittest.mock import patch from oto import response from prs.constants import http_response_codes from prs.logic import tool_log_logic from prs.models import collection_society from prs.models import tool_log def test_initialize_tool_success(mocker, tool_param_data_initialize_tool): """Test initialize_tool response contents upon success.""" test_tool_name = 'Label Details' tool_log_id = {'tool_log_id': 1} mocker.patch.object( collection_society, 'get_society_id_by_country_id', return_value=response.Response(message={'society_id': 1})) mocker.patch.object( tool_log, 'initialize_tool_log', return_value=response.Response(message=tool_log_id)) result = tool_log_logic.initialize_tool( test_tool_name, tool_param_data_initialize_tool) assert result.status == http_response_codes.SUCCESS_STATUS assert result.message['tool_log_id'] == tool_log_id['tool_log_id'] def test_initialize_tool_failure(mocker, tool_param_data_initialize_tool): """Test initialize_tool response contents upon db failure.""" test_tool_name = 'Label Details' mocker.patch.object( tool_log, 'initialize_tool_log', return_value=response.create_fatal_response()) result = tool_log_logic.initialize_tool( test_tool_name, tool_param_data_initialize_tool) assert result.status == http_response_codes.INTERNAL_SERVER_ERROR @patch('prs.models.tool_log.update_tool_log') def test_complete_tool_success(mock_model): """Test complete_tool.""" to_be_updated_log_values = {'tool_log_id': 1} progress_message = 'update message' tool_log_status = 'success' mock_model.return_value = response.Response(message=1) tool_log_logic.complete_tool( to_be_updated_log_values, progress_message, tool_log_status) to_be_updated_log_values['progress'] = progress_message assert tool_log.update_tool_log.called tool_log.update_tool_log.assert_called_with(to_be_updated_log_values)