Impl simple email and phone number validation

This commit is contained in:
Nitwix
2025-04-12 14:53:33 +02:00
parent 5a039d1a9a
commit c6a648a063
4 changed files with 24 additions and 6 deletions

View File

@ -17,4 +17,6 @@ urllib3==2.4.0
pydantic==2.11.3
langchain==0.3.23
langchain-groq==0.3.2
email-validator==2.2.0
email-validator==2.2.0
pydantic-extra-types==2.10.3
phonenumbers==9.0.3

View File

@ -2,11 +2,22 @@ from datetime import date
from pydantic import ValidationError
import pytest
from tests.dummy import dummy_passport
from tests.dummy import dummy_account, dummy_passport
from validation.from_passport import FromPassport
def test_check_expiry_date_after_issue_date() -> None:
dummy = dummy_passport()
with pytest.raises(ValidationError):
dummy.expiry_date = date(1900, 1, 1)
dummy.expiry_date = date(1900, 1, 1)
def test_invalid_email() -> None:
dummy = dummy_account()
with pytest.raises(ValidationError):
dummy.email = "this is not a valid email account"
def test_invalid_phone_number() -> None:
dummy = dummy_account()
with pytest.raises(ValidationError):
dummy.phone_number = "This should be invalid"
dummy.phone_number = "+41 32 333 33 33"

View File

@ -1,6 +1,6 @@
from typing import Literal, Optional, Self
from pydantic import BaseModel, ConfigDict, EmailStr, Field, model_validator
from pydantic_extra_types.phone_numbers import PhoneNumber
class FromAccount(BaseModel):
"""
@ -32,5 +32,5 @@ class FromAccount(BaseModel):
country: str = Field(min_length=1)
name: str = Field(min_length=1)
phone_number: str = Field(min_length=6)
phone_number: PhoneNumber
email: EmailStr

View File

@ -1,2 +1,7 @@
# TODO
# account.reference_currency corresponds to passport.country
# account.reference_currency corresponds to passport.country
# account.country ~ passport.country
# account.city is in account.country