"""Unit tests for contract reserve schemas.""" from abacus_contract.schemas.contract_reserve import ( ContractReservePostSchema, ContractReserveSchema, ContractReserveWithAccountIdSchema, ) from abacus_contract.tests.utils.factories import ( ContractFactory, ContractReserveFactory, ) def test_contract_reserve_schema(): """Test contract reserve schema.""" contract = ContractFactory.create() contract_reserve = ContractReserveFactory.create(contract=contract) result = ContractReserveSchema().dump(contract_reserve) assert result == { 'contract_id': contract_reserve.contract_id, 'contract_reserve_id': contract_reserve.contract_reserve_id, 'installments_in_months': contract_reserve.installments_in_months, 'reserve_rate': str(contract_reserve.reserve_rate), 'reserve_release_offset_in_months': contract_reserve.reserve_release_offset_in_months, 'release_schedule': contract_reserve.release_schedule, } def test_contract_reserve_post_schema(): """Test contract reserve post schema.""" contract_reserve = { 'installments_in_months': 2, 'reserve_rate': '30', 'reserve_release_offset_in_months': 2, 'release_schedule': ['15', '25'], } result = ContractReservePostSchema().dump(contract_reserve) assert result == contract_reserve def test_contract_reserve_with_account_id_schema(create_mock_account): """Test contract_reserve_with_account_id schema.""" mock_contract_reserve = { 'account_id': 1, 'contract_id': 1, 'contract_reserve_id': 1, 'installments_in_months': 1, 'reserve_rate': '50', 'reserve_release_offset_in_months': 2, 'release_schedule': ['0.5', '0.5'], } result = ContractReserveWithAccountIdSchema().dump(mock_contract_reserve) assert result == mock_contract_reserve