Skip to content

Commit 1c01bd2

Browse files
authored
gh-95950: Add a test for both csv.Dialect and kwargs (#95951)
1 parent 3d3a86e commit 1c01bd2

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

Lib/test/test_csv.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -448,6 +448,34 @@ def test_register_kwargs(self):
448448
self.assertEqual(csv.get_dialect(name).delimiter, ';')
449449
self.assertEqual([['X', 'Y', 'Z']], list(csv.reader(['X;Y;Z'], name)))
450450

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+
451479
def test_incomplete_dialect(self):
452480
class myexceltsv(csv.Dialect):
453481
delimiter = "\t"

0 commit comments

Comments
 (0)