@@ -123,10 +123,10 @@ class Meta:
123
123
'non_model_field' : 'bar' ,
124
124
})
125
125
serializer .is_valid ()
126
- with self .assertRaises (TypeError ) as excinfo :
127
- serializer .save ()
126
+
128
127
msginitial = 'Got a `TypeError` when calling `OneFieldModel.objects.create()`.'
129
- assert str (excinfo .exception ).startswith (msginitial )
128
+ with self .assertRaisesMessage (TypeError , msginitial ):
129
+ serializer .save ()
130
130
131
131
def test_abstract_model (self ):
132
132
"""
@@ -147,10 +147,10 @@ class Meta:
147
147
serializer = TestSerializer (data = {
148
148
'afield' : 'foo' ,
149
149
})
150
- with self .assertRaises (ValueError ) as excinfo :
151
- serializer .is_valid ()
150
+
152
151
msginitial = 'Cannot use ModelSerializer with Abstract Models.'
153
- assert str (excinfo .exception ).startswith (msginitial )
152
+ with self .assertRaisesMessage (ValueError , msginitial ):
153
+ serializer .is_valid ()
154
154
155
155
156
156
class TestRegularFieldMappings (TestCase ):
@@ -294,10 +294,9 @@ class Meta:
294
294
model = RegularFieldsModel
295
295
fields = ('auto_field' , 'invalid' )
296
296
297
- with self .assertRaises (ImproperlyConfigured ) as excinfo :
298
- TestSerializer ().fields
299
297
expected = 'Field name `invalid` is not valid for model `RegularFieldsModel`.'
300
- assert str (excinfo .exception ) == expected
298
+ with self .assertRaisesMessage (ImproperlyConfigured , expected ):
299
+ TestSerializer ().fields
301
300
302
301
def test_missing_field (self ):
303
302
"""
@@ -311,13 +310,12 @@ class Meta:
311
310
model = RegularFieldsModel
312
311
fields = ('auto_field' ,)
313
312
314
- with self .assertRaises (AssertionError ) as excinfo :
315
- TestSerializer ().fields
316
313
expected = (
317
314
"The field 'missing' was declared on serializer TestSerializer, "
318
315
"but has not been included in the 'fields' option."
319
316
)
320
- assert str (excinfo .exception ) == expected
317
+ with self .assertRaisesMessage (AssertionError , expected ):
318
+ TestSerializer ().fields
321
319
322
320
def test_missing_superclass_field (self ):
323
321
"""
@@ -327,13 +325,7 @@ def test_missing_superclass_field(self):
327
325
class TestSerializer (serializers .ModelSerializer ):
328
326
missing = serializers .ReadOnlyField ()
329
327
330
- class Meta :
331
- model = RegularFieldsModel
332
- fields = '__all__'
333
-
334
328
class ChildSerializer (TestSerializer ):
335
- missing = serializers .ReadOnlyField ()
336
-
337
329
class Meta :
338
330
model = RegularFieldsModel
339
331
fields = ('auto_field' ,)
@@ -348,22 +340,6 @@ class Meta:
348
340
349
341
ExampleSerializer ()
350
342
351
- def test_fields_and_exclude_behavior (self ):
352
- class ImplicitFieldsSerializer (serializers .ModelSerializer ):
353
- class Meta :
354
- model = RegularFieldsModel
355
- fields = '__all__'
356
-
357
- class ExplicitFieldsSerializer (serializers .ModelSerializer ):
358
- class Meta :
359
- model = RegularFieldsModel
360
- fields = '__all__'
361
-
362
- implicit = ImplicitFieldsSerializer ()
363
- explicit = ExplicitFieldsSerializer ()
364
-
365
- assert implicit .data == explicit .data
366
-
367
343
368
344
class TestDurationFieldMapping (TestCase ):
369
345
def test_duration_field (self ):
@@ -862,44 +838,31 @@ class Meta:
862
838
model = MetaClassTestModel
863
839
fields = 'text'
864
840
865
- with self .assertRaises (TypeError ) as result :
841
+ msginitial = "The `fields` option must be a list or tuple"
842
+ with self .assertRaisesMessage (TypeError , msginitial ):
866
843
ExampleSerializer ().fields
867
844
868
- exception = result .exception
869
- assert str (exception ).startswith (
870
- "The `fields` option must be a list or tuple"
871
- )
872
-
873
845
def test_meta_class_exclude_option (self ):
874
846
class ExampleSerializer (serializers .ModelSerializer ):
875
847
class Meta :
876
848
model = MetaClassTestModel
877
849
exclude = 'text'
878
850
879
- with self .assertRaises (TypeError ) as result :
851
+ msginitial = "The `exclude` option must be a list or tuple"
852
+ with self .assertRaisesMessage (TypeError , msginitial ):
880
853
ExampleSerializer ().fields
881
854
882
- exception = result .exception
883
- assert str (exception ).startswith (
884
- "The `exclude` option must be a list or tuple"
885
- )
886
-
887
855
def test_meta_class_fields_and_exclude_options (self ):
888
856
class ExampleSerializer (serializers .ModelSerializer ):
889
857
class Meta :
890
858
model = MetaClassTestModel
891
859
fields = ('text' ,)
892
860
exclude = ('text' ,)
893
861
894
- with self .assertRaises (AssertionError ) as result :
862
+ msginitial = "Cannot set both 'fields' and 'exclude' options on serializer ExampleSerializer."
863
+ with self .assertRaisesMessage (AssertionError , msginitial ):
895
864
ExampleSerializer ().fields
896
865
897
- exception = result .exception
898
- self .assertEqual (
899
- str (exception ),
900
- "Cannot set both 'fields' and 'exclude' options on serializer ExampleSerializer."
901
- )
902
-
903
866
def test_declared_fields_with_exclude_option (self ):
904
867
class ExampleSerializer (serializers .ModelSerializer ):
905
868
text = serializers .CharField ()
0 commit comments