mirror of https://github.com/python/cpython
gh-115538: Emit warning when use bool as fd in _io.WindowsConsoleIO (GH-116925)
This commit is contained in:
parent
43c9d6196a
commit
cd2ed91780
|
@ -43,6 +43,9 @@ class WindowsConsoleIOTests(unittest.TestCase):
|
|||
self.assertEqual(0, f.fileno())
|
||||
f.close() # multiple close should not crash
|
||||
f.close()
|
||||
with self.assertWarns(RuntimeWarning):
|
||||
with ConIO(False):
|
||||
pass
|
||||
|
||||
try:
|
||||
f = ConIO(1, 'w')
|
||||
|
@ -55,6 +58,9 @@ class WindowsConsoleIOTests(unittest.TestCase):
|
|||
self.assertEqual(1, f.fileno())
|
||||
f.close()
|
||||
f.close()
|
||||
with self.assertWarns(RuntimeWarning):
|
||||
with ConIO(False):
|
||||
pass
|
||||
|
||||
try:
|
||||
f = ConIO(2, 'w')
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
:class:`_io.WindowsConsoleIO` now emit a warning if a boolean value is
|
||||
passed as a filedescriptor argument.
|
|
@ -298,6 +298,13 @@ _io__WindowsConsoleIO___init___impl(winconsoleio *self, PyObject *nameobj,
|
|||
self->fd = -1;
|
||||
}
|
||||
|
||||
if (PyBool_Check(nameobj)) {
|
||||
if (PyErr_WarnEx(PyExc_RuntimeWarning,
|
||||
"bool is used as a file descriptor", 1))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
fd = PyLong_AsInt(nameobj);
|
||||
if (fd < 0) {
|
||||
if (!PyErr_Occurred()) {
|
||||
|
|
Loading…
Reference in New Issue