Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cuenca_validations/types/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,6 @@ def validate_age_requirement(birth_date: Union[dt.date, Curp]) -> dt.date:
birth_date = get_birth_date_from_curp(birth_date)

current_date = dt.date.today()
if relativedelta(current_date, birth_date).years < 18:
if not 18 <= relativedelta(current_date, birth_date).years <= 99:
raise ValueError('User does not meet age requirement.')
return birth_date
2 changes: 1 addition & 1 deletion cuenca_validations/version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = '2.1.39'
__version__ = '2.1.40'
24 changes: 20 additions & 4 deletions tests/test_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,10 @@
State,
)
from cuenca_validations.types.general import LogConfig, StrictPositiveInt
from cuenca_validations.types.helpers import get_log_config
from cuenca_validations.types.helpers import (
get_log_config,
validate_age_requirement,
)
from cuenca_validations.types.identities import Password
from cuenca_validations.types.requests import (
ApiKeyUpdateRequest,
Expand Down Expand Up @@ -457,7 +460,7 @@ def test_curp_validation_request():
names='Pedro',
first_surname='Páramo',
second_surname=None,
date_of_birth=dt.date(1917, 5, 17),
date_of_birth=dt.date(1970, 5, 17),
state_of_birth=State.DF.value,
gender='male',
manual_curp='ABCD920604HDFSRN03',
Expand Down Expand Up @@ -489,8 +492,8 @@ def test_curp_validation_request():
CurpValidationRequest(**request)
assert 'User does not meet age requirement.' in str(v)

# changing date of birth so user is underage
request['date_of_birth'] = dt.date(1917, 5, 17)
# restoring a valid age to isolate the missing state_of_birth error
request['date_of_birth'] = dt.date(1970, 5, 17)
Comment thread
coderabbitai[bot] marked this conversation as resolved.
del request['state_of_birth']

with pytest.raises(ValueError) as v:
Expand All @@ -504,6 +507,19 @@ def test_curp_validation_request_underage() -> None:
assert 'User does not meet age requirement.' in str(v)


@freeze_time('2026-07-27')
def test_validate_age_requirement_overage() -> None:
with pytest.raises(ValueError) as v:
validate_age_requirement(dt.date(1926, 5, 17))
assert 'User does not meet age requirement.' in str(v.value)


@freeze_time('2026-07-27')
def test_validate_age_requirement_valid() -> None:
birth_date = dt.date(1950, 5, 17)
assert validate_age_requirement(birth_date) == birth_date


def test_user_update_request():
request = dict(
beneficiaries=[
Expand Down
Loading