From 02d2211effbce69164c8c5580a4fedcc22790672 Mon Sep 17 00:00:00 2001 From: sobolevn Date: Sat, 13 Aug 2022 11:48:32 +0300 Subject: [PATCH 1/2] gh-95950: Add a test for both `csv.Dialect` and `kwargs` --- Lib/test/test_csv.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/Lib/test/test_csv.py b/Lib/test/test_csv.py index 95a19dd46cb4ff..ea66cf00d9175e 100644 --- a/Lib/test/test_csv.py +++ b/Lib/test/test_csv.py @@ -448,6 +448,34 @@ def test_register_kwargs(self): self.assertEqual(csv.get_dialect(name).delimiter, ';') self.assertEqual([['X', 'Y', 'Z']], list(csv.reader(['X;Y;Z'], name))) + def test_register_kwargs_override(self): + class mydialect(csv.Dialect): + delimiter = "\t" + quotechar = '"' + doublequote = True + skipinitialspace = False + lineterminator = '\r\n' + quoting = csv.QUOTE_MINIMAL + + name = 'test_dialect' + csv.register_dialect(name, mydialect, + delimiter=';', + quotechar="'", + doublequote=False, + skipinitialspace=True + lineterminator='\n', + quoting=csv.QUOTE_ALL) + self.addCleanup(csv.unregister_dialect, name) + + # Ensure that kwargs do override attributes of a dialect class: + dialect = csv.get_dialect(name) + self.assertEqual(dialect.delimiter, ';') + self.assertEqual(dialect.quotechar, "'") + self.assertEqual(dialect.doublequote, False) + self.assertEqual(dialect.skipinitialspace, True) + self.assertEqual(dialect.lineterminator, '\n') + self.assertEqual(dialect.quoting, csv.QUOTE_ALL) + def test_incomplete_dialect(self): class myexceltsv(csv.Dialect): delimiter = "\t" From 215c80f68705fc377a6ef5da58b40ca5759504e4 Mon Sep 17 00:00:00 2001 From: sobolevn Date: Sat, 13 Aug 2022 12:31:13 +0300 Subject: [PATCH 2/2] Typo --- Lib/test/test_csv.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/test/test_csv.py b/Lib/test/test_csv.py index ea66cf00d9175e..ff2a668c422ffe 100644 --- a/Lib/test/test_csv.py +++ b/Lib/test/test_csv.py @@ -462,7 +462,7 @@ class mydialect(csv.Dialect): delimiter=';', quotechar="'", doublequote=False, - skipinitialspace=True + skipinitialspace=True, lineterminator='\n', quoting=csv.QUOTE_ALL) self.addCleanup(csv.unregister_dialect, name)