From c7c42efb16612f66af266073937cffa99ad49a33 Mon Sep 17 00:00:00 2001 From: R David Murray Date: Tue, 19 Mar 2013 22:41:47 -0400 Subject: #15927: Fix cvs.reader parsing of escaped \r\n with quoting off. This fix means that such values are correctly roundtripped, since cvs.writer already does the correct escaping. Patch by Michael Johnson. --- Lib/test/test_csv.py | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'Lib/test/test_csv.py') diff --git a/Lib/test/test_csv.py b/Lib/test/test_csv.py index 3dc3836015..974d73d02f 100644 --- a/Lib/test/test_csv.py +++ b/Lib/test/test_csv.py @@ -308,6 +308,15 @@ class Test_Csv(unittest.TestCase): for i, row in enumerate(csv.reader(fileobj)): self.assertEqual(row, rows[i]) + def test_roundtrip_escaped_unquoted_newlines(self): + with TemporaryFile("w+", newline='') as fileobj: + writer = csv.writer(fileobj,quoting=csv.QUOTE_NONE,escapechar="\\") + rows = [['a\nb','b'],['c','x\r\nd']] + writer.writerows(rows) + fileobj.seek(0) + for i, row in enumerate(csv.reader(fileobj,quoting=csv.QUOTE_NONE,escapechar="\\")): + self.assertEqual(row,rows[i]) + class TestDialectRegistry(unittest.TestCase): def test_registry_badargs(self): self.assertRaises(TypeError, csv.list_dialects, None) -- cgit v1.2.1