@@ -392,17 +392,42 @@ def test_read_quoting(self):
392392 # will this fail where locale uses comma for decimals?
393393 self ._read_test ([',3,"5",7.3, 9' ], [['' , 3 , '5' , 7.3 , 9 ]],
394394 quoting = csv .QUOTE_NONNUMERIC )
395+ self ._read_test ([',3,"5",7.3, 9' ], [[None , '3' , '5' , '7.3' , ' 9' ]],
396+ quoting = csv .QUOTE_NOTNULL )
397+ self ._read_test ([',3,"5",7.3, 9' ], [[None , 3 , '5' , 7.3 , 9 ]],
398+ quoting = csv .QUOTE_STRINGS )
399+
400+ self ._read_test ([',,"",' ], [['' , '' , '' , '' ]])
401+ self ._read_test ([',,"",' ], [['' , '' , '' , '' ]],
402+ quoting = csv .QUOTE_NONNUMERIC )
403+ self ._read_test ([',,"",' ], [[None , None , '' , None ]],
404+ quoting = csv .QUOTE_NOTNULL )
405+ self ._read_test ([',,"",' ], [[None , None , '' , None ]],
406+ quoting = csv .QUOTE_STRINGS )
407+
395408 self ._read_test (['"a\n b", 7' ], [['a\n b' , ' 7' ]])
396409 self .assertRaises (ValueError , self ._read_test ,
397410 ['abc,3' ], [[]],
398411 quoting = csv .QUOTE_NONNUMERIC )
412+ self .assertRaises (ValueError , self ._read_test ,
413+ ['abc,3' ], [[]],
414+ quoting = csv .QUOTE_STRINGS )
399415 self ._read_test (['1,@,3,@,5' ], [['1' , ',3,' , '5' ]], quotechar = '@' )
400416 self ._read_test (['1,\0 ,3,\0 ,5' ], [['1' , ',3,' , '5' ]], quotechar = '\0 ' )
401417
402418 def test_read_skipinitialspace (self ):
403419 self ._read_test (['no space, space, spaces,\t tab' ],
404420 [['no space' , 'space' , 'spaces' , '\t tab' ]],
405421 skipinitialspace = True )
422+ self ._read_test ([' , , ' ],
423+ [['' , '' , '' ]],
424+ skipinitialspace = True )
425+ self ._read_test ([' , , ' ],
426+ [[None , None , None ]],
427+ skipinitialspace = True , quoting = csv .QUOTE_NOTNULL )
428+ self ._read_test ([' , , ' ],
429+ [[None , None , None ]],
430+ skipinitialspace = True , quoting = csv .QUOTE_STRINGS )
406431
407432 def test_read_bigfield (self ):
408433 # This exercises the buffer realloc functionality and field size
0 commit comments