@@ -2230,14 +2230,33 @@ class ExampleSerializer(serializers.Serializer):
2230
2230
password = serializers .CharField ()
2231
2231
2232
2232
def validate_password (self , obj ):
2233
- err = DjangoValidationError ('exc_msg' , code = 'exc_code' )
2233
+ err = DjangoValidationError (
2234
+ 'exc_msg %s' , code = 'exc_code' , params = ('exc_param' ,),
2235
+ )
2234
2236
if use_list :
2235
2237
err = DjangoValidationError ([err ])
2236
2238
raise err
2237
2239
2238
2240
serializer = ExampleSerializer (data = {'password' : 123 })
2239
2241
serializer .is_valid ()
2240
- assert serializer .errors == {'password' : ['exc_msg' ]}
2242
+ assert serializer .errors == {'password' : ['exc_msg exc_param' ]}
2243
+ assert serializer .errors ['password' ][0 ].code == 'exc_code'
2244
+
2245
+ @pytest .mark .parametrize ('use_list' , (False , True ))
2246
+ def test_validationerror_code_with_msg_including_percent (self , use_list ):
2247
+
2248
+ class ExampleSerializer (serializers .Serializer ):
2249
+ password = serializers .CharField ()
2250
+
2251
+ def validate_password (self , obj ):
2252
+ err = DjangoValidationError ('exc_msg with %' , code = 'exc_code' )
2253
+ if use_list :
2254
+ err = DjangoValidationError ([err ])
2255
+ raise err
2256
+
2257
+ serializer = ExampleSerializer (data = {'password' : 123 })
2258
+ serializer .is_valid ()
2259
+ assert serializer .errors == {'password' : ['exc_msg with %' ]}
2241
2260
assert serializer .errors ['password' ][0 ].code == 'exc_code'
2242
2261
2243
2262
@pytest .mark .parametrize ('code' , (None , 'exc_code' ,))
0 commit comments