@@ -626,6 +626,24 @@ def test_write_fields_not_in_fieldnames(self):
626626 self .assertNotIn ("'f2'" , exception )
627627 self .assertIn ("1" , exception )
628628
629+ def test_typo_in_extrasaction_raises_error (self ):
630+ fileobj = StringIO ()
631+ self .assertRaises (ValueError , csv .DictWriter , fileobj , ['f1' , 'f2' ],
632+ extrasaction = "raised" )
633+
634+ def test_write_field_not_in_field_names_raise (self ):
635+ fileobj = StringIO ()
636+ writer = csv .DictWriter (fileobj , ['f1' , 'f2' ], extrasaction = "raise" )
637+ dictrow = {'f0' : 0 , 'f1' : 1 , 'f2' : 2 , 'f3' : 3 }
638+ self .assertRaises (ValueError , csv .DictWriter .writerow , writer , dictrow )
639+
640+ def test_write_field_not_in_field_names_ignore (self ):
641+ fileobj = StringIO ()
642+ writer = csv .DictWriter (fileobj , ['f1' , 'f2' ], extrasaction = "ignore" )
643+ dictrow = {'f0' : 0 , 'f1' : 1 , 'f2' : 2 , 'f3' : 3 }
644+ csv .DictWriter .writerow (writer , dictrow )
645+ self .assertEqual (fileobj .getvalue (), "1,2\r \n " )
646+
629647 def test_read_dict_fields (self ):
630648 with TemporaryFile ("w+" ) as fileobj :
631649 fileobj .write ("1,2,abc\r \n " )
0 commit comments