From 87a578f89fab6407d83bc07d70195eb0b9f75cf1 Mon Sep 17 00:00:00 2001 From: Roger Date: Thu, 16 Oct 2025 15:46:45 -0600 Subject: [PATCH 1/3] Update phone and email internal --- cuenca_validations/types/requests.py | 9 +++++++++ cuenca_validations/version.py | 2 +- tests/test_requests.py | 17 ++++++++++++++++- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/cuenca_validations/types/requests.py b/cuenca_validations/types/requests.py index 8a2dfd50..8edd2869 100644 --- a/cuenca_validations/types/requests.py +++ b/cuenca_validations/types/requests.py @@ -519,6 +519,15 @@ class UserUpdateRequest(BaseRequest): monthly_movements_type: Optional[MonthlyMovementsType] = None monthly_spending_type: Optional[MonthlySpendingType] = None income_type: Optional[IncomeType] = None + phone_number: PhoneNumber | None = None + email_address: EmailStr | None = None + + @model_validator(mode="before") + @classmethod + def check_at_least_one_param(cls, values: DictStrAny) -> DictStrAny: + if not values: + raise ValueError('At least one parameter must be provided') + return values @field_validator('beneficiaries') @classmethod diff --git a/cuenca_validations/version.py b/cuenca_validations/version.py index f43fee12..e54fa8f0 100644 --- a/cuenca_validations/version.py +++ b/cuenca_validations/version.py @@ -1 +1 @@ -__version__ = '2.1.19' +__version__ = '2.1.20.dev0' diff --git a/tests/test_requests.py b/tests/test_requests.py index 95446313..9ca6ae90 100644 --- a/tests/test_requests.py +++ b/tests/test_requests.py @@ -1,7 +1,10 @@ import pytest from pydantic import ValidationError -from cuenca_validations.types.requests import UserTOSAgreementRequest +from cuenca_validations.types.requests import ( + UserTOSAgreementRequest, + UserUpdateRequest, +) from cuenca_validations.typing import DictStrAny @@ -29,3 +32,15 @@ def test_file_cuenca_url_invalid() -> None: ) with pytest.raises(ValidationError): UserTOSAgreementRequest(**request_data) + + +def test_update_user_requires_at_least_one_param(): + with pytest.raises(ValueError) as ex: + UserUpdateRequest() + assert 'At least one parameter must be provided' in str(ex.value) + + +def test_extra_params_are_not_allowed(): + with pytest.raises(ValueError) as ex: + UserUpdateRequest(foo='bar') + assert 'Extra inputs are not permitted' in str(ex.value) From c43292bd4694654768557e3b1ee5fd3060ce1063 Mon Sep 17 00:00:00 2001 From: Roger Date: Thu, 16 Oct 2025 15:48:23 -0600 Subject: [PATCH 2/3] optional --- cuenca_validations/types/requests.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cuenca_validations/types/requests.py b/cuenca_validations/types/requests.py index 8edd2869..63f08cc5 100644 --- a/cuenca_validations/types/requests.py +++ b/cuenca_validations/types/requests.py @@ -519,8 +519,8 @@ class UserUpdateRequest(BaseRequest): monthly_movements_type: Optional[MonthlyMovementsType] = None monthly_spending_type: Optional[MonthlySpendingType] = None income_type: Optional[IncomeType] = None - phone_number: PhoneNumber | None = None - email_address: EmailStr | None = None + phone_number: Optional[PhoneNumber] = None + email_address: Optional[EmailStr] = None @model_validator(mode="before") @classmethod From 8c472ed7278e095335a9d603c3f8d8144559a983 Mon Sep 17 00:00:00 2001 From: Roger Date: Thu, 16 Oct 2025 15:49:40 -0600 Subject: [PATCH 3/3] version --- cuenca_validations/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cuenca_validations/version.py b/cuenca_validations/version.py index e54fa8f0..e978fcc5 100644 --- a/cuenca_validations/version.py +++ b/cuenca_validations/version.py @@ -1 +1 @@ -__version__ = '2.1.20.dev0' +__version__ = '2.1.20'