1+ import datetime as dt
2+ from typing import Any
3+
4+ import pytest
5+
16from quienesquien .person import Person
27
38
4- def test_collect_extra_fields ():
5- person_data = {
9+ def test_collect_extra_fields () -> None :
10+ person_data : dict [ str , Any ] = {
611 'LISTA' : 'lista1' ,
712 'COINCIDENCIA' : 100 ,
813 'NOMBRECOMP' : 'Juan Pérez' ,
@@ -14,5 +19,37 @@ def test_collect_extra_fields():
1419 assert person .peso1 == '100'
1520 assert person .coincidencia == 100
1621 assert person .nombrecomp == 'Juan Pérez'
17- assert person .campo_extra1 == 'valor1'
18- assert person .campo_extra2 == 'valor2'
22+
23+ # Access extra fields through model_extra after lowercase conversion
24+ assert person .model_extra is not None
25+ assert person .model_extra ['campo_extra1' ] == 'valor1'
26+ assert person .model_extra ['campo_extra2' ] == 'valor2'
27+
28+
29+ @pytest .mark .parametrize (
30+ "fecha_nacimiento_input, expected_fecha_nacimiento, expected_date" ,
31+ [
32+ ('13/11/1953' , '13/11/1953' , dt .date (1953 , 11 , 13 )),
33+ (None , None , None ),
34+ ('' , '' , None ),
35+ ('invalid-date' , 'invalid-date' , None ),
36+ ('1953-11-13' , '1953-11-13' , None ),
37+ ('13/11' , '13/11' , None ),
38+ ('13-11-1953' , '13-11-1953' , None ),
39+ ],
40+ )
41+ def test_fecha_nacimiento_date (
42+ fecha_nacimiento_input : str | None ,
43+ expected_fecha_nacimiento : str | None ,
44+ expected_date : dt .date | None ,
45+ ) -> None :
46+ person_data : dict [str , Any ] = {
47+ 'LISTA' : 'PPE' ,
48+ 'COINCIDENCIA' : 100 ,
49+ 'NOMBRECOMP' : 'Andres Manuel López Obrador' ,
50+ 'FECHA_NACIMIENTO' : fecha_nacimiento_input ,
51+ }
52+ person = Person (** person_data )
53+
54+ assert person .fecha_nacimiento == expected_fecha_nacimiento
55+ assert person .fecha_nacimiento_date == expected_date
0 commit comments