11"""Pytest entry point for lupl.CurryModel tests."""
22
3- from pydantic import BaseModel , Field
3+ from pydantic import BaseModel , ConfigDict , Field
4+
45from lupl import CurryModel
56
67
@@ -13,44 +14,30 @@ class MyModel(BaseModel):
1314 curried_model1 = CurryModel (MyModel )
1415 curried_model1 (x = "1" )
1516 curried_model1 (y = 2 )
16- model_instance1 = curried_model1 (z = ("3" , 4 ))
17+ model_instance1 = curried_model1 (z = ("3" , 4 ))()
1718
1819 curried_model_2 = CurryModel (MyModel )
19- model_instance_2 = curried_model_2 (x = "1" )(y = 2 )(z = ("3" , 4 ))
20+ model_instance_2 = curried_model_2 (x = "1" )(y = 2 )(z = ("3" , 4 ))()
2021
2122 curried_model_3 = CurryModel (MyModel )
22- model_instance_3 = curried_model_3 (x = "1" , y = 2 )(z = ("3" , 4 ))
23+ model_instance_3 = curried_model_3 (x = "1" , y = 2 )(z = ("3" , 4 ))()
2324
2425 assert model_instance1 == model_instance_2 == model_instance_3
2526
2627
27- def test_curry_default_arg_model_eager ():
28- class MyModel (BaseModel ):
29- x : int
30- y : int
31- z : int = 3
32-
33- curried = CurryModel (MyModel )
34- x_curried = curried (x = 1 )
35- assert isinstance (x_curried , CurryModel )
36-
37- model = x_curried (y = 2 )
38- assert isinstance (model , BaseModel )
39-
40-
41- def test_curry_default_arg_model_non_eager ():
42- class MyModel (BaseModel ):
43- x : int
44- y : int
45- z : int = 3
28+ def test_curry_model_aliasing ():
29+ class Model (BaseModel ):
30+ model_config = ConfigDict (
31+ alias_generator = lambda field_name : field_name * 3 , validate_by_name = True
32+ )
4633
47- curried = CurryModel (MyModel , eager = False )
48- x_curried = curried (x = 1 )
49- assert isinstance (x_curried , CurryModel )
34+ a : int
35+ b : int = Field (validation_alias = "B" )
36+ c : int = Field (validation_alias = "C" , alias_priority = 1 )
37+ d : int = Field (validation_alias = "D" , alias_priority = 2 )
5038
51- y_curried = x_curried ( y = 2 )
52- assert isinstance ( y_curried , CurryModel )
39+ curry_model = CurryModel ( model = Model )( aaa = 1 )( B = 2 )( ccc = 3 )( D = 4 )( e = 5 )( f = 6 )( g = 7 )( h = 8 )
40+ curry_model ( )
5341
54- model = y_curried (z = 33 )
55- assert isinstance (model , BaseModel )
56- assert model .z == 33
42+ curry_model = CurryModel (model = Model )(a = 1 )(b = 2 )(c = 3 )(d = 4 )(e = 5 )(f = 6 )(g = 7 )(h = 8 )
43+ curry_model ()
0 commit comments