diff --git a/Lib/test/test_csv.py b/Lib/test/test_csv.py index 7e76f4bc1..21b02c2f0 100644 --- a/Lib/test/test_csv.py +++ b/Lib/test/test_csv.py @@ -228,7 +228,6 @@ class Test_Csv(unittest.TestCase): self._write_test(['a','',None,1], '"a","",,"1"', quoting = csv.QUOTE_NOTNULL) - @unittest.expectedFailure # TODO: RUSTPYTHON def test_write_escape(self): self._write_test(['a',1,'p,q'], 'a,1,"p,q"', escapechar='\\') diff --git a/crates/stdlib/src/csv.rs b/crates/stdlib/src/csv.rs index a0f75300e..b07f9c644 100644 --- a/crates/stdlib/src/csv.rs +++ b/crates/stdlib/src/csv.rs @@ -1246,7 +1246,7 @@ mod _csv { fn field_needs_quotes(data: &[u8], dialect: &PyDialect) -> bool { data.iter().any(|&byte| { byte == dialect.delimiter - || dialect.quotechar == Some(byte) + || (dialect.doublequote && dialect.quotechar == Some(byte)) || matches!(byte, b'\r' | b'\n') }) || data_contains_lineterminator_char(data, dialect) }