File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -708,12 +708,13 @@ def to_internal_value(self, data):
708708 self .fail ("invalid" , input = data )
709709
710710 def to_representation (self , value ):
711- if self ._lower_if_str (value ) in self .TRUE_VALUES :
712- return True
713- elif self ._lower_if_str (value ) in self .FALSE_VALUES :
714- return False
715- if self ._lower_if_str (value ) in self .NULL_VALUES and self .allow_null :
716- return None
711+ with contextlib .suppress (TypeError ):
712+ if self ._lower_if_str (value ) in self .TRUE_VALUES :
713+ return True
714+ elif self ._lower_if_str (value ) in self .FALSE_VALUES :
715+ return False
716+ if self ._lower_if_str (value ) in self .NULL_VALUES and self .allow_null :
717+ return None
717718 return bool (value )
718719
719720
Original file line number Diff line number Diff line change @@ -774,33 +774,38 @@ class TestBooleanField(FieldValues):
774774 'foo' : ['Must be a valid boolean.' ],
775775 None : ['This field may not be null.' ]
776776 }
777- outputs = {
778- 'True' : True ,
779- 'TRUE' : True ,
780- 'tRuE' : True ,
781- 't' : True ,
782- 'T' : True ,
783- 'true' : True ,
784- 'on' : True ,
785- 'ON' : True ,
786- 'oN' : True ,
787- 'False' : False ,
788- 'FALSE' : False ,
789- 'fALse' : False ,
790- 'f' : False ,
791- 'F' : False ,
792- 'false' : False ,
793- 'off' : False ,
794- 'OFF' : False ,
795- 'oFf' : False ,
796- '1' : True ,
797- '0' : False ,
798- 1 : True ,
799- 0 : False ,
800- True : True ,
801- False : False ,
802- 'other' : True
803- }
777+ outputs = [
778+ ('True' , True ),
779+ ('TRUE' , True ),
780+ ('tRuE' , True ),
781+ ('t' , True ),
782+ ('T' , True ),
783+ ('true' , True ),
784+ ('on' , True ),
785+ ('ON' , True ),
786+ ('oN' , True ),
787+ ('False' , False ),
788+ ('FALSE' , False ),
789+ ('fALse' , False ),
790+ ('f' , False ),
791+ ('F' , False ),
792+ ('false' , False ),
793+ ('off' , False ),
794+ ('OFF' , False ),
795+ ('oFf' , False ),
796+ ('1' , True ),
797+ ('0' , False ),
798+ (1 , True ),
799+ (0 , False ),
800+ (True , True ),
801+ (False , False ),
802+ ('other' , True ),
803+ ([], False ),
804+ ({}, False ),
805+ (set (), False ),
806+ ([1 ], True ),
807+ ({'example' : 'value' }, True ),
808+ ]
804809 field = serializers .BooleanField ()
805810
806811 def test_disallow_unhashable_collection_types (self ):
You can’t perform that action at this time.
0 commit comments