@@ -14,7 +14,6 @@ class OdooBaseModel(PydanticOrmBaseModel):
1414
1515class PartnerModel (OdooBaseModel ):
1616 name : str
17- date : datetime .date | None = None
1817
1918
2019class UserFlatModel (OdooBaseModel ):
@@ -38,6 +37,11 @@ class UserDetailsModel(UserModel):
3837 write_date : datetime .datetime
3938
4039
40+ class CurrencyRateModel (OdooBaseModel ):
41+ name : datetime .date | None = None
42+ rate : float
43+
44+
4145class CommonPydanticCase (TransactionCase ):
4246 @classmethod
4347 def setUpClass (cls ):
@@ -46,28 +50,29 @@ def setUpClass(cls):
4650 cls .user_demo .action_id = False
4751 cls .user_demo .signature = False
4852 cls .user_demo .share = False
53+ cls .currency_eur = cls .env .ref ("base.USD" )
54+ cls .currency_rate = cls .env .ref ("base.rateUSD" )
4955
5056
5157class TestGenericOdooGetterPydanticV2Case (CommonPydanticCase ):
5258 def test_user_model_serialization (self ):
53- self .user_demo . partner_id . date = None
59+ self .currency_rate . name = None # name is a date field
5460 self .assertEqual (
55- UserModel .model_validate (self .user_demo , from_attributes = True ).model_dump (),
61+ CurrencyRateModel .model_validate (
62+ self .currency_rate , from_attributes = True
63+ ).model_dump (),
5664 {
57- "id" : self .user_demo .id ,
58- "partner" : {
59- "id" : self .user_demo .partner_id .id ,
60- "name" : self .user_demo .partner_id .name ,
61- "date" : None ,
62- },
65+ "id" : self .currency_rate .id ,
66+ "name" : None ,
67+ "rate" : self .currency_rate .rate ,
6368 },
6469 )
6570
6671 def test_user_model_serialization_date (self ):
67- self .user_demo . partner_id . date = fields .Date .today ()
72+ self .currency_rate . name = fields .Date .today () # name is a date field
6873 self .assertEqual (
69- UserModel .model_validate (self .user_demo ). partner . date ,
70- self .user_demo . partner_id . date ,
74+ CurrencyRateModel .model_validate (self .currency_rate ). name ,
75+ self .currency_rate . name ,
7176 )
7277
7378 def test_user_model_details_serialization_datetime (self ):
@@ -91,7 +96,6 @@ def test_user_details_model_serialization(self):
9196 "partner" : {
9297 "id" : self .user_demo .partner_id .id ,
9398 "name" : self .user_demo .partner_id .name ,
94- "date" : None ,
9599 },
96100 "groups" : [
97101 {
0 commit comments