mirror of
https://github.com/python/cpython.git
synced 2025-07-30 06:34:15 +00:00
backport r67325: make FileIO.mode always contain 'b'
This commit is contained in:
parent
c078f929cb
commit
bfc51567f5
4 changed files with 16 additions and 12 deletions
|
@ -50,7 +50,7 @@ class AutoFileTests(unittest.TestCase):
|
||||||
# verify expected attributes exist
|
# verify expected attributes exist
|
||||||
f = self.f
|
f = self.f
|
||||||
|
|
||||||
self.assertEquals(f.mode, "w")
|
self.assertEquals(f.mode, "wb")
|
||||||
self.assertEquals(f.closed, False)
|
self.assertEquals(f.closed, False)
|
||||||
|
|
||||||
# verify the attributes are readonly
|
# verify the attributes are readonly
|
||||||
|
@ -160,7 +160,7 @@ class OtherFileTests(unittest.TestCase):
|
||||||
|
|
||||||
def testModeStrings(self):
|
def testModeStrings(self):
|
||||||
# check invalid mode strings
|
# check invalid mode strings
|
||||||
for mode in ("", "aU", "wU+", "rb", "rt"):
|
for mode in ("", "aU", "wU+", "rw", "rt"):
|
||||||
try:
|
try:
|
||||||
f = _fileio._FileIO(TESTFN, mode)
|
f = _fileio._FileIO(TESTFN, mode)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
|
|
|
@ -1266,7 +1266,7 @@ class MiscIOTest(unittest.TestCase):
|
||||||
|
|
||||||
def test_attributes(self):
|
def test_attributes(self):
|
||||||
f = io.open(test_support.TESTFN, "wb", buffering=0)
|
f = io.open(test_support.TESTFN, "wb", buffering=0)
|
||||||
self.assertEquals(f.mode, "w")
|
self.assertEquals(f.mode, "wb")
|
||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
f = io.open(test_support.TESTFN, "U")
|
f = io.open(test_support.TESTFN, "U")
|
||||||
|
@ -1274,18 +1274,18 @@ class MiscIOTest(unittest.TestCase):
|
||||||
self.assertEquals(f.buffer.name, test_support.TESTFN)
|
self.assertEquals(f.buffer.name, test_support.TESTFN)
|
||||||
self.assertEquals(f.buffer.raw.name, test_support.TESTFN)
|
self.assertEquals(f.buffer.raw.name, test_support.TESTFN)
|
||||||
self.assertEquals(f.mode, "U")
|
self.assertEquals(f.mode, "U")
|
||||||
self.assertEquals(f.buffer.mode, "r")
|
self.assertEquals(f.buffer.mode, "rb")
|
||||||
self.assertEquals(f.buffer.raw.mode, "r")
|
self.assertEquals(f.buffer.raw.mode, "rb")
|
||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
f = io.open(test_support.TESTFN, "w+")
|
f = io.open(test_support.TESTFN, "w+")
|
||||||
self.assertEquals(f.mode, "w+")
|
self.assertEquals(f.mode, "w+")
|
||||||
self.assertEquals(f.buffer.mode, "r+") # Does it really matter?
|
self.assertEquals(f.buffer.mode, "rb+") # Does it really matter?
|
||||||
self.assertEquals(f.buffer.raw.mode, "r+")
|
self.assertEquals(f.buffer.raw.mode, "rb+")
|
||||||
|
|
||||||
g = io.open(f.fileno(), "wb", closefd=False)
|
g = io.open(f.fileno(), "wb", closefd=False)
|
||||||
self.assertEquals(g.mode, "w")
|
self.assertEquals(g.mode, "wb")
|
||||||
self.assertEquals(g.raw.mode, "w")
|
self.assertEquals(g.raw.mode, "wb")
|
||||||
self.assertEquals(g.name, f.fileno())
|
self.assertEquals(g.name, f.fileno())
|
||||||
self.assertEquals(g.raw.name, f.fileno())
|
self.assertEquals(g.raw.name, f.fileno())
|
||||||
f.close()
|
f.close()
|
||||||
|
|
|
@ -56,6 +56,8 @@ Library
|
||||||
- Issue #4363: The uuid.uuid1() and uuid.uuid4() functions now work even if
|
- Issue #4363: The uuid.uuid1() and uuid.uuid4() functions now work even if
|
||||||
the ctypes module is not present.
|
the ctypes module is not present.
|
||||||
|
|
||||||
|
- FileIO's mode attribute now always includes ``"b"``.
|
||||||
|
|
||||||
- Issue #4116: Resolve member name conflict in ScrolledCanvas.__init__.
|
- Issue #4116: Resolve member name conflict in ScrolledCanvas.__init__.
|
||||||
|
|
||||||
- httplib.HTTPConnection.putheader() now accepts an arbitrary number of values
|
- httplib.HTTPConnection.putheader() now accepts an arbitrary number of values
|
||||||
|
|
|
@ -208,6 +208,8 @@ fileio_init(PyObject *oself, PyObject *args, PyObject *kwds)
|
||||||
flags |= O_CREAT;
|
flags |= O_CREAT;
|
||||||
append = 1;
|
append = 1;
|
||||||
break;
|
break;
|
||||||
|
case 'b':
|
||||||
|
break;
|
||||||
case '+':
|
case '+':
|
||||||
if (plus)
|
if (plus)
|
||||||
goto bad_mode;
|
goto bad_mode;
|
||||||
|
@ -682,12 +684,12 @@ mode_string(PyFileIOObject *self)
|
||||||
{
|
{
|
||||||
if (self->readable) {
|
if (self->readable) {
|
||||||
if (self->writable)
|
if (self->writable)
|
||||||
return "r+";
|
return "rb+";
|
||||||
else
|
else
|
||||||
return "r";
|
return "rb";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return "w";
|
return "wb";
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue