@@ -1131,6 +1131,32 @@ def test_invert_boolean_field(self):
11311131 initial_repartition [False ] += initial_repartition .pop (None , 0 )
11321132 self .assertEqual (back_repartition , initial_repartition )
11331133
1134+ def test_change_field_selection_with_default (self ):
1135+ cr = self .env .cr
1136+ lang = self .env ["res.lang" ].create ({"name" : "Elvish" , "code" : "el_VISH" , "active" : True })
1137+ if util .table_exists (cr , "ir_default" ):
1138+ self .env ["ir.default" ].set ("res.partner" , "lang" , "el_VISH" )
1139+ else :
1140+ self .env ["ir.values" ].set_default ("res.partner" , "lang" , "el_VISH" )
1141+ util .flush (lang )
1142+ partner = self .env ["res.partner" ].create ({"name" : "Gandalf" })
1143+ self .assertEqual (partner .lang , "el_VISH" )
1144+
1145+ util .invalidate (partner )
1146+ util .clear_cache (partner )
1147+ util .change_field_selection_values (cr , "res.partner" , "lang" , {"el_VISH" : "en_US" })
1148+
1149+ self .assertEqual (partner .lang , "en_US" )
1150+
1151+ if util .table_exists (cr , "ir_default" ):
1152+ new_default = (getattr (self .env ["ir.default" ], "get" , None ) or self .env ["ir.default" ]._get )(
1153+ "res.partner" , "lang"
1154+ )
1155+ else :
1156+ new_default = self .env ["ir.values" ].get_default ("res.partner" , "lang" )
1157+
1158+ self .assertEqual (new_default , "en_US" )
1159+
11341160
11351161class TestHelpers (UnitTestCase ):
11361162 def test_model_table_conversion (self ):
0 commit comments