@@ -391,7 +391,7 @@ class Foo(models.Model):
391
391
392
392
class TestAvroDataWriter (ToolBaseTest ):
393
393
394
- def assertBinaryRoundTrip (self , model_class , data ):
394
+ def binary_roundtrip (self , model_class , data ):
395
395
model = model_class (data )
396
396
schema_dumper = self .mk_schema_dumper ()
397
397
schema = avro .schema .parse (schema_dumper .dump_schema (model_class ))
@@ -404,7 +404,11 @@ def assertBinaryRoundTrip(self, model_class, data):
404
404
open (file_name , 'rb' ),
405
405
DatumReader (readers_schema = schema )) as reader :
406
406
[row ] = reader
407
- self .assertEqual (model , model_class (row ))
407
+ return row
408
+
409
+ def assertBinaryRoundTrip (self , model_class , data ):
410
+ round_tripped = self .binary_roundtrip (model_class , data )
411
+ self .assertEqual (model_class (data ), model_class (round_tripped ))
408
412
409
413
def test_empty_model (self ):
410
414
@@ -431,3 +435,13 @@ class Foo(models.Model):
431
435
432
436
self .assertBinaryRoundTrip (
433
437
Foo , {'dict_' : {'int' : 1 , 'text' : 'texts' }})
438
+
439
+ def test_null_fields (self ):
440
+ class Foo (models .Model ):
441
+ name = models .TextField ('name' )
442
+ age = models .IntegerField ('age' , default = 5 )
443
+
444
+ data = self .binary_roundtrip (Foo , {})
445
+ model = Foo (data )
446
+ self .assertEqual (model .age , 5 )
447
+ self .assertEqual (model .name , None )
0 commit comments