@@ -421,6 +421,34 @@ def test_register_kwargs(self):
421
421
self .assertEqual (csv .get_dialect (name ).delimiter , ';' )
422
422
self .assertEqual ([['X' , 'Y' , 'Z' ]], list (csv .reader (['X;Y;Z' ], name )))
423
423
424
+ def test_register_kwargs_override (self ):
425
+ class mydialect (csv .Dialect ):
426
+ delimiter = "\t "
427
+ quotechar = '"'
428
+ doublequote = True
429
+ skipinitialspace = False
430
+ lineterminator = '\r \n '
431
+ quoting = csv .QUOTE_MINIMAL
432
+
433
+ name = 'test_dialect'
434
+ csv .register_dialect (name , mydialect ,
435
+ delimiter = ';' ,
436
+ quotechar = "'" ,
437
+ doublequote = False ,
438
+ skipinitialspace = True ,
439
+ lineterminator = '\n ' ,
440
+ quoting = csv .QUOTE_ALL )
441
+ self .addCleanup (csv .unregister_dialect , name )
442
+
443
+ # Ensure that kwargs do override attributes of a dialect class:
444
+ dialect = csv .get_dialect (name )
445
+ self .assertEqual (dialect .delimiter , ';' )
446
+ self .assertEqual (dialect .quotechar , "'" )
447
+ self .assertEqual (dialect .doublequote , False )
448
+ self .assertEqual (dialect .skipinitialspace , True )
449
+ self .assertEqual (dialect .lineterminator , '\n ' )
450
+ self .assertEqual (dialect .quoting , csv .QUOTE_ALL )
451
+
424
452
def test_incomplete_dialect (self ):
425
453
class myexceltsv (csv .Dialect ):
426
454
delimiter = "\t "
0 commit comments