@@ -2255,14 +2255,33 @@ class ExampleSerializer(serializers.Serializer):
2255
2255
password = serializers .CharField ()
2256
2256
2257
2257
def validate_password (self , obj ):
2258
- err = DjangoValidationError ('exc_msg' , code = 'exc_code' )
2258
+ err = DjangoValidationError (
2259
+ 'exc_msg %s' , code = 'exc_code' , params = ('exc_param' ,),
2260
+ )
2259
2261
if use_list :
2260
2262
err = DjangoValidationError ([err ])
2261
2263
raise err
2262
2264
2263
2265
serializer = ExampleSerializer (data = {'password' : 123 })
2264
2266
serializer .is_valid ()
2265
- assert serializer .errors == {'password' : ['exc_msg' ]}
2267
+ assert serializer .errors == {'password' : ['exc_msg exc_param' ]}
2268
+ assert serializer .errors ['password' ][0 ].code == 'exc_code'
2269
+
2270
+ @pytest .mark .parametrize ('use_list' , (False , True ))
2271
+ def test_validationerror_code_with_msg_including_percent (self , use_list ):
2272
+
2273
+ class ExampleSerializer (serializers .Serializer ):
2274
+ password = serializers .CharField ()
2275
+
2276
+ def validate_password (self , obj ):
2277
+ err = DjangoValidationError ('exc_msg with %' , code = 'exc_code' )
2278
+ if use_list :
2279
+ err = DjangoValidationError ([err ])
2280
+ raise err
2281
+
2282
+ serializer = ExampleSerializer (data = {'password' : 123 })
2283
+ serializer .is_valid ()
2284
+ assert serializer .errors == {'password' : ['exc_msg with %' ]}
2266
2285
assert serializer .errors ['password' ][0 ].code == 'exc_code'
2267
2286
2268
2287
@pytest .mark .parametrize ('code' , (None , 'exc_code' ,))
0 commit comments