@@ -448,6 +448,34 @@ def test_register_kwargs(self):
448
448
self .assertEqual (csv .get_dialect (name ).delimiter , ';' )
449
449
self .assertEqual ([['X' , 'Y' , 'Z' ]], list (csv .reader (['X;Y;Z' ], name )))
450
450
451
+ def test_register_kwargs_override (self ):
452
+ class mydialect (csv .Dialect ):
453
+ delimiter = "\t "
454
+ quotechar = '"'
455
+ doublequote = True
456
+ skipinitialspace = False
457
+ lineterminator = '\r \n '
458
+ quoting = csv .QUOTE_MINIMAL
459
+
460
+ name = 'test_dialect'
461
+ csv .register_dialect (name , mydialect ,
462
+ delimiter = ';' ,
463
+ quotechar = "'" ,
464
+ doublequote = False ,
465
+ skipinitialspace = True ,
466
+ lineterminator = '\n ' ,
467
+ quoting = csv .QUOTE_ALL )
468
+ self .addCleanup (csv .unregister_dialect , name )
469
+
470
+ # Ensure that kwargs do override attributes of a dialect class:
471
+ dialect = csv .get_dialect (name )
472
+ self .assertEqual (dialect .delimiter , ';' )
473
+ self .assertEqual (dialect .quotechar , "'" )
474
+ self .assertEqual (dialect .doublequote , False )
475
+ self .assertEqual (dialect .skipinitialspace , True )
476
+ self .assertEqual (dialect .lineterminator , '\n ' )
477
+ self .assertEqual (dialect .quoting , csv .QUOTE_ALL )
478
+
451
479
def test_incomplete_dialect (self ):
452
480
class myexceltsv (csv .Dialect ):
453
481
delimiter = "\t "
0 commit comments