Skip to content

Commit 60f704f

Browse files
gh-95950: Add a test for both csv.Dialect and kwargs (GH-95951)
(cherry picked from commit 1c01bd2) Co-authored-by: Nikita Sobolev <[email protected]>
1 parent f51c232 commit 60f704f

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
@@ -421,6 +421,34 @@ def test_register_kwargs(self):
421421
self.assertEqual(csv.get_dialect(name).delimiter, ';')
422422
self.assertEqual([['X', 'Y', 'Z']], list(csv.reader(['X;Y;Z'], name)))
423423

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

0 commit comments

Comments
 (0)