Skip to content

Commit 7887891

Browse files
committed
tests
1 parent c07cadc commit 7887891

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

Lib/test/test_csv.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,7 @@ def test_read_oddinputs(self):
373373
self.assertRaises(csv.Error, self._read_test,
374374
['"ab"c'], None, strict = 1)
375375
self._read_test(['"ab"c'], [['abc']], doublequote = 0)
376+
self._read_test([",,,"], [["", "", "", ""]])
376377

377378
self.assertRaises(csv.Error, self._read_test,
378379
[b'abc'], None)
@@ -423,6 +424,10 @@ def test_read_escape(self):
423424
self._read_test(['a,\0b,c'], [['a', 'b', 'c']], escapechar='\0')
424425
self._read_test(['a,\\b,c'], [['a', '\\b', 'c']], escapechar=None)
425426
self._read_test(['a,\\b,c'], [['a', '\\b', 'c']])
427+
# '"abc\" with escapechar='\' -> ESCAPE_IN_QUOTED_FIELD + EOL -> '\n' appended
428+
self._read_test(['"abc\\'], [["abc\n"]], escapechar="\\")
429+
with self.assertRaises(csv.Error):
430+
self._read_test(['"abc\\'], None, escapechar="\\", strict=True)
426431

427432
def test_read_quoting(self):
428433
self._read_test(['1,",3,",5'], [['1', ',3,', '5']])
@@ -513,6 +518,31 @@ def test_read_linenum(self):
513518
self.assertRaises(StopIteration, next, r)
514519
self.assertEqual(r.line_num, 3)
515520

521+
def test_read_linenum_multiline_record(self):
522+
r = csv.reader(['"a', 'b",c', "d,e"])
523+
self.assertEqual(next(r), ["ab", "c"])
524+
self.assertEqual(r.line_num, 2)
525+
self.assertEqual(next(r), ["d", "e"])
526+
self.assertEqual(r.line_num, 3)
527+
with self.assertRaises(StopIteration):
528+
next(r)
529+
self.assertEqual(r.line_num, 3)
530+
531+
def test_read_with_unicode_delimiter_and_quotechar(self):
532+
self._read_test(["αλβλγ"], [["α", "β", "γ"]], delimiter="λ")
533+
self._read_test(
534+
["אαאλאβאλאγא"], [["α", "β", "γ"]], delimiter="λ", quotechar="א"
535+
)
536+
537+
# non-BMP
538+
delim, quote = "😂", "😺"
539+
self._read_test(
540+
[f"{quote}a{quote}{delim}{quote}b{quote}"],
541+
[["a", "b"]],
542+
delimiter=delim,
543+
quotechar=quote,
544+
)
545+
516546
def test_roundtrip_quoteed_newlines(self):
517547
rows = [
518548
['\na', 'b\nc', 'd\n'],

0 commit comments

Comments
 (0)