@@ -71,6 +71,15 @@ class ActionItemSerializer(serializers.ModelSerializer):
7171 class Meta :
7272 model = ActionItem
7373
74+ class ActionItemSerializerOptionalFields (serializers .ModelSerializer ):
75+ """
76+ Intended to test that fields with `required=False` are excluded from validation.
77+ """
78+ title = serializers .CharField (required = False )
79+
80+ class Meta :
81+ model = ActionItem
82+ fields = ('title' ,)
7483
7584class ActionItemSerializerCustomRestore (serializers .ModelSerializer ):
7685
@@ -288,7 +297,13 @@ def test_serializer_data_is_cleared_on_save(self):
288297 serializer .save ()
289298 self .assertIsNotNone (serializer .data .get ('id' ,None ), 'Model is saved. `id` should be set.' )
290299
291-
300+ def test_fields_marked_as_not_required_are_excluded_from_validation (self ):
301+ """
302+ Check that fields with `required=False` are included in list of exclusions.
303+ """
304+ serializer = ActionItemSerializerOptionalFields (self .actionitem )
305+ exclusions = serializer .get_validation_exclusions ()
306+ self .assertTrue ('title' in exclusions , '`title` field was marked `required=False` and should be excluded' )
292307
293308
294309class DictStyleSerializer (serializers .Serializer ):
@@ -1808,14 +1823,14 @@ def test_enabled_partial(self):
18081823 self .assertEqual (serializer .data ['cat' ], False )
18091824 self .assertEqual (serializer .data ['dog' ], False )
18101825
1811-
1826+
18121827class BoolenFieldTypeTest (TestCase ):
18131828 '''
18141829 Ensure the various Boolean based model fields are rendered as the proper
18151830 field type
1816-
1831+
18171832 '''
1818-
1833+
18191834 def setUp (self ):
18201835 '''
18211836 Setup an ActionItemSerializer for BooleanTesting
@@ -1831,11 +1846,11 @@ def test_booleanfield_type(self):
18311846 '''
18321847 bfield = self .serializer .get_fields ()['done' ]
18331848 self .assertEqual (type (bfield ), fields .BooleanField )
1834-
1849+
18351850 def test_nullbooleanfield_type (self ):
18361851 '''
1837- Test that BooleanField is infered from models.NullBooleanField
1838-
1852+ Test that BooleanField is infered from models.NullBooleanField
1853+
18391854 https://groups.google.com/forum/#!topic/django-rest-framework/D9mXEftpuQ8
18401855 '''
18411856 bfield = self .serializer .get_fields ()['started' ]
0 commit comments