diff options
author | R David Murray <rdmurray@bitdance.com> | 2013-03-19 22:41:47 -0400 |
---|---|---|
committer | R David Murray <rdmurray@bitdance.com> | 2013-03-19 22:41:47 -0400 |
commit | c7c42efb16612f66af266073937cffa99ad49a33 (patch) | |
tree | 2653077e3c508f41ac849282d53d801c1779f76a /Lib/test/test_csv.py | |
parent | 04cbe0c35b20c8379baf55cc5e152f88449e5202 (diff) | |
download | cpython-git-c7c42efb16612f66af266073937cffa99ad49a33.tar.gz |
#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.
Diffstat (limited to 'Lib/test/test_csv.py')
-rw-r--r-- | Lib/test/test_csv.py | 9 |
1 files changed, 9 insertions, 0 deletions
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) |