@@ -44,6 +44,8 @@ def _test_arg_valid(self, ctor, arg):
4444 quoting = csv .QUOTE_ALL , quotechar = '' )
4545 self .assertRaises (TypeError , ctor , arg ,
4646 quoting = csv .QUOTE_ALL , quotechar = None )
47+ self .assertRaises (TypeError , ctor , arg ,
48+ quoting = csv .QUOTE_NONE , quotechar = '' )
4749
4850 def test_reader_arg_valid (self ):
4951 self ._test_arg_valid (csv .reader , [])
@@ -342,7 +344,6 @@ def test_read_escape(self):
342344 self ._read_test (['a,^b,c' ], [['a' , 'b' , 'c' ]], escapechar = '^' )
343345 self ._read_test (['a,\0 b,c' ], [['a' , 'b' , 'c' ]], escapechar = '\0 ' )
344346 self ._read_test (['a,\\ b,c' ], [['a' , '\\ b' , 'c' ]], escapechar = None )
345- self ._read_test (['a,\\ b,c' ], [['a' , '\\ b' , 'c' ]], escapechar = '' )
346347 self ._read_test (['a,\\ b,c' ], [['a' , '\\ b' , 'c' ]])
347348
348349 def test_read_quoting (self ):
@@ -913,6 +914,12 @@ class mydialect(csv.Dialect):
913914 self .assertEqual (d .quotechar , '"' )
914915 self .assertTrue (d .doublequote )
915916
917+ mydialect .quotechar = ""
918+ with self .assertRaises (csv .Error ) as cm :
919+ mydialect ()
920+ self .assertEqual (str (cm .exception ),
921+ '"quotechar" must be a 1-character string' )
922+
916923 mydialect .quotechar = "''"
917924 with self .assertRaises (csv .Error ) as cm :
918925 mydialect ()
@@ -977,6 +984,10 @@ class mydialect(csv.Dialect):
977984 d = mydialect ()
978985 self .assertEqual (d .escapechar , "\\ " )
979986
987+ mydialect .escapechar = ""
988+ with self .assertRaisesRegex (csv .Error , '"escapechar" must be a 1-character string' ):
989+ mydialect ()
990+
980991 mydialect .escapechar = "**"
981992 with self .assertRaisesRegex (csv .Error , '"escapechar" must be a 1-character string' ):
982993 mydialect ()
0 commit comments