Skip to content

Commit 568d220

Browse files
gh-70835: Clarify error message for CSV file opened with wrong newline (GH-113786)
Based on patch by SilentGhost.
1 parent aef4a12 commit 568d220

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

Lib/test/test_csv.py

+12-7
Original file line numberDiff line numberDiff line change
@@ -297,13 +297,18 @@ def test_read_oddinputs(self):
297297
[b'abc'], None)
298298

299299
def test_read_eol(self):
300-
self._read_test(['a,b'], [['a','b']])
301-
self._read_test(['a,b\n'], [['a','b']])
302-
self._read_test(['a,b\r\n'], [['a','b']])
303-
self._read_test(['a,b\r'], [['a','b']])
304-
self.assertRaises(csv.Error, self._read_test, ['a,b\rc,d'], [])
305-
self.assertRaises(csv.Error, self._read_test, ['a,b\nc,d'], [])
306-
self.assertRaises(csv.Error, self._read_test, ['a,b\r\nc,d'], [])
300+
self._read_test(['a,b', 'c,d'], [['a','b'], ['c','d']])
301+
self._read_test(['a,b\n', 'c,d\n'], [['a','b'], ['c','d']])
302+
self._read_test(['a,b\r\n', 'c,d\r\n'], [['a','b'], ['c','d']])
303+
self._read_test(['a,b\r', 'c,d\r'], [['a','b'], ['c','d']])
304+
305+
errmsg = "with newline=''"
306+
with self.assertRaisesRegex(csv.Error, errmsg):
307+
next(csv.reader(['a,b\rc,d']))
308+
with self.assertRaisesRegex(csv.Error, errmsg):
309+
next(csv.reader(['a,b\nc,d']))
310+
with self.assertRaisesRegex(csv.Error, errmsg):
311+
next(csv.reader(['a,b\r\nc,d']))
307312

308313
def test_read_eof(self):
309314
self._read_test(['a,"'], [['a', '']])

Modules/_csv.c

+2-1
Original file line numberDiff line numberDiff line change
@@ -837,7 +837,8 @@ parse_process_char(ReaderObj *self, _csvstate *module_state, Py_UCS4 c)
837837
self->state = START_RECORD;
838838
else {
839839
PyErr_Format(module_state->error_obj,
840-
"new-line character seen in unquoted field - do you need to open the file in universal-newline mode?");
840+
"new-line character seen in unquoted field - "
841+
"do you need to open the file with newline=''?");
841842
return -1;
842843
}
843844
break;

0 commit comments

Comments
 (0)