"""Test ows-abacus-account models.""" from pydantic import ValidationError import pytest from src.models.ows_abacus_account import AccountPayeeModel, AccountPayeeUpdateModel def test_account_payee_model_success() -> None: """Test AccountPayeeModel.""" assert AccountPayeeModel.model_validate( { 'payoneer_program_id': 12345678, 'payoneer_payee_id': 4321, 'payoneer_payee_name': 'Name1', 'sap_vendor_id': 101, 'reference_payment_type_id': 8, 'account_id': 15, 'account_payee_id': 105, 'last_modified': 'today', } ) == AccountPayeeModel( payoneer_program_id=12345678, payoneer_payee_id=4321, payoneer_payee_name='Name1', payoneer_iframe_url=None, payoneer_iframe_url_date=None, payoneer_session_id=None, sap_vendor_id=101, reference_payment_type_id=8, account_id=15, account_payee_id=105, last_modified='today', ) def test_account_payee_model_failure() -> None: """Test AccountPayeeModel validation failure.""" with pytest.raises(ValidationError) as exc_info: AccountPayeeModel.model_validate( { 'payoneer_program_id': 'aaa', 'payoneer_payee_name': 123, 'payoneer_iframe_url': 321, 'sap_vendor_id': 'bb', 'reference_payment_type_id': 'c', 'last_modified': 11, } ) assert [e['loc'] for e in exc_info.value.errors()] == [ ('payoneer_program_id',), ('payoneer_payee_name',), ('payoneer_iframe_url',), ('sap_vendor_id',), ('reference_payment_type_id',), ('account_id',), ('account_payee_id',), ('last_modified',), ] def test_account_payee_update_model_partial_dump() -> None: """Test AccountPayeeUpdateModel.""" data = {'reference_payment_type_id': 12} assert ( AccountPayeeUpdateModel(**data).model_dump(mode='json', exclude_none=True) == data )