Skip to content

Commit 5ce80db

Browse files
authored
Update phone and email internal (#391)
* Update phone and email internal * optional * version
1 parent 237aec0 commit 5ce80db

3 files changed

Lines changed: 26 additions & 2 deletions

File tree

cuenca_validations/types/requests.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -519,6 +519,15 @@ class UserUpdateRequest(BaseRequest):
519519
monthly_movements_type: Optional[MonthlyMovementsType] = None
520520
monthly_spending_type: Optional[MonthlySpendingType] = None
521521
income_type: Optional[IncomeType] = None
522+
phone_number: Optional[PhoneNumber] = None
523+
email_address: Optional[EmailStr] = None
524+
525+
@model_validator(mode="before")
526+
@classmethod
527+
def check_at_least_one_param(cls, values: DictStrAny) -> DictStrAny:
528+
if not values:
529+
raise ValueError('At least one parameter must be provided')
530+
return values
522531

523532
@field_validator('beneficiaries')
524533
@classmethod

cuenca_validations/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '2.1.19'
1+
__version__ = '2.1.20'

tests/test_requests.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import pytest
22
from pydantic import ValidationError
33

4-
from cuenca_validations.types.requests import UserTOSAgreementRequest
4+
from cuenca_validations.types.requests import (
5+
UserTOSAgreementRequest,
6+
UserUpdateRequest,
7+
)
58
from cuenca_validations.typing import DictStrAny
69

710

@@ -29,3 +32,15 @@ def test_file_cuenca_url_invalid() -> None:
2932
)
3033
with pytest.raises(ValidationError):
3134
UserTOSAgreementRequest(**request_data)
35+
36+
37+
def test_update_user_requires_at_least_one_param():
38+
with pytest.raises(ValueError) as ex:
39+
UserUpdateRequest()
40+
assert 'At least one parameter must be provided' in str(ex.value)
41+
42+
43+
def test_extra_params_are_not_allowed():
44+
with pytest.raises(ValueError) as ex:
45+
UserUpdateRequest(foo='bar')
46+
assert 'Extra inputs are not permitted' in str(ex.value)

0 commit comments

Comments
 (0)