Skip to content

Commit c6da4ff

Browse files
committed
Try to fix universal write on windows
1 parent e4be882 commit c6da4ff

File tree

4 files changed

+4
-11
lines changed

4 files changed

+4
-11
lines changed

Lib/test/test_calendar.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -845,9 +845,7 @@ def test_several_leapyears_in_range(self):
845845

846846

847847
def conv(s):
848-
# XXX RUSTPYTHON TODO: TextIOWrapper newline translation
849-
return s.encode()
850-
# return s.replace('\n', os.linesep).encode()
848+
return s.replace('\n', os.linesep).encode()
851849

852850
class CommandLineTestCase(unittest.TestCase):
853851
def run_ok(self, *args):

Lib/test/test_gzip.py

-1
Original file line numberDiff line numberDiff line change
@@ -725,7 +725,6 @@ def test_bad_params(self):
725725
with self.assertRaises(ValueError):
726726
gzip.open(self.filename, "rb", newline="\n")
727727

728-
@unittest.expectedFailureIfWindows("TODO: RUSTPYTHON")
729728
def test_encoding(self):
730729
# Test non-default encoding.
731730
uncompressed = data1.decode("ascii") * 50

Lib/test/test_httpservers.py

-2
Original file line numberDiff line numberDiff line change
@@ -616,8 +616,6 @@ class request_handler(NoLogRequestHandler, CGIHTTPRequestHandler):
616616
pass
617617

618618
linesep = os.linesep.encode('ascii')
619-
# TODO: RUSTPYTHON
620-
linesep = b'\n'
621619

622620
def setUp(self):
623621
BaseTestCase.setUp(self)

vm/src/stdlib/io.rs

+3-5
Original file line numberDiff line numberDiff line change
@@ -2750,15 +2750,13 @@ mod _io {
27502750
let data = obj.as_str();
27512751

27522752
let replace_nl = match textio.newline {
2753+
Newlines::Lf => Some("\n"),
27532754
Newlines::Cr => Some("\r"),
27542755
Newlines::Crlf => Some("\r\n"),
2756+
Newlines::Universal if cfg!(windows) => Some("\r\n"),
27552757
_ => None,
27562758
};
2757-
let has_lf = if replace_nl.is_some() || textio.line_buffering {
2758-
data.contains('\n')
2759-
} else {
2760-
false
2761-
};
2759+
let has_lf = (replace_nl.is_some() || textio.line_buffering) && data.contains('\n');
27622760
let flush = textio.line_buffering && (has_lf || data.contains('\r'));
27632761
let chunk = if let Some(replace_nl) = replace_nl {
27642762
if has_lf {

0 commit comments

Comments
 (0)