"""Tests for contract_lifecycle_import.""" from unittest.mock import MagicMock from unittest.mock import patch from json_contract_file_import.contract_lifecycle_import import \ _create_new_contract_lifecycle from json_contract_file_import.contract_lifecycle_import import \ _get_contract_lifecycle_data from json_contract_file_import.contract_lifecycle_import import \ import_contract_lifecycle from json_contract_file_import.entity_import_result import EntityImportResult from tests.unit.utils import assert_import_result single_schedule_info = { 'lifecycle_term_start_date': '2025-01-01', 'lifecycle_schedule': { 'termination_notice_detail_interval': 90, 'termination_notice_detail_type': 'day', 'renewal_type': 'continuously_active' } } @patch( 'json_contract_file_import.contract_lifecycle_import' '._create_new_contract_lifecycle' ) def test_import_contract_lifecycle( mock_create_new_contract_lifecycle ): """Test import contract lifecycle.""" mock_result = EntityImportResult( EntityImportResult.CONTRACT_LIFECYCLE, 'contract:100', True, '', 'Some additional info.', '' ) mock_create_new_contract_lifecycle.return_value = [mock_result] import_results = import_contract_lifecycle( 100, 8, single_schedule_info ) mock_create_new_contract_lifecycle.assert_called_once_with( 100, 8, single_schedule_info ) assert len(import_results) == 1 assert_import_result(import_results[0], mock_result) @patch( 'json_contract_file_import.contract_lifecycle_import' '.ows_royalties.create_contract_lifecycle' ) def test__create_new_contract_lifecycle( mock_create_contract_lifecycle, ): """Test create new contract lifecycle.""" mock_response = MagicMock() mock_response.status_code = 201 mock_response.text = """{ "some_info": 123 }""" mock_create_contract_lifecycle.return_value = mock_response import_results = _create_new_contract_lifecycle( 100, 200, single_schedule_info ) assert len(import_results) == 1 assert_import_result( import_results[0], EntityImportResult( EntityImportResult.CONTRACT_LIFECYCLE, 'contract:100', True, '', """{ "some_info": 123 }""", '' ) ) def test__get_contract_lifecycle_data_when_start_date(): """Test get contract lifecycle data when start date present.""" assert _get_contract_lifecycle_data( single_schedule_info ) == {'lifecycle_term_start': '2025-01-01'} def test__get_contract_lifecycle_data_when_no_start_date(): """Test get contract lifecycle data when start date does not present.""" assert _get_contract_lifecycle_data({ 'lifecycle_schedule': { 'termination_notice_detail_interval': 90, 'termination_notice_detail_type': 'day', 'renewal_type': 'continuously_active' }}) is None