Issue #15784: Modify OSError.__str__() to better distinguish between
errno error numbers and Windows error numbers.
This commit is contained in:
parent
ca2b64682e
commit
30147710e8
|
@ -216,14 +216,14 @@ class ExceptionTests(unittest.TestCase):
|
||||||
self.assertEqual(w.winerror, 3)
|
self.assertEqual(w.winerror, 3)
|
||||||
self.assertEqual(w.strerror, 'foo')
|
self.assertEqual(w.strerror, 'foo')
|
||||||
self.assertEqual(w.filename, 'bar')
|
self.assertEqual(w.filename, 'bar')
|
||||||
self.assertEqual(str(w), "[Error 3] foo: 'bar'")
|
self.assertEqual(str(w), "[WinError 3] foo: 'bar'")
|
||||||
# Unknown win error becomes EINVAL (22)
|
# Unknown win error becomes EINVAL (22)
|
||||||
w = OSError(0, 'foo', None, 1001)
|
w = OSError(0, 'foo', None, 1001)
|
||||||
self.assertEqual(w.errno, 22)
|
self.assertEqual(w.errno, 22)
|
||||||
self.assertEqual(w.winerror, 1001)
|
self.assertEqual(w.winerror, 1001)
|
||||||
self.assertEqual(w.strerror, 'foo')
|
self.assertEqual(w.strerror, 'foo')
|
||||||
self.assertEqual(w.filename, None)
|
self.assertEqual(w.filename, None)
|
||||||
self.assertEqual(str(w), "[Error 1001] foo")
|
self.assertEqual(str(w), "[WinError 1001] foo")
|
||||||
# Non-numeric "errno"
|
# Non-numeric "errno"
|
||||||
w = OSError('bar', 'foo')
|
w = OSError('bar', 'foo')
|
||||||
self.assertEqual(w.errno, 'bar')
|
self.assertEqual(w.errno, 'bar')
|
||||||
|
|
|
@ -10,6 +10,9 @@ What's New in Python 3.3.0 Release Candidate 2?
|
||||||
Core and Builtins
|
Core and Builtins
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
- Issue #15784: Modify OSError.__str__() to better distinguish between
|
||||||
|
errno error numbers and Windows error numbers.
|
||||||
|
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
|
|
@ -1016,12 +1016,12 @@ OSError_str(PyOSErrorObject *self)
|
||||||
#ifdef MS_WINDOWS
|
#ifdef MS_WINDOWS
|
||||||
/* If available, winerror has the priority over myerrno */
|
/* If available, winerror has the priority over myerrno */
|
||||||
if (self->winerror && self->filename)
|
if (self->winerror && self->filename)
|
||||||
return PyUnicode_FromFormat("[Error %S] %S: %R",
|
return PyUnicode_FromFormat("[WinError %S] %S: %R",
|
||||||
self->winerror ? self->winerror: Py_None,
|
self->winerror ? self->winerror: Py_None,
|
||||||
self->strerror ? self->strerror: Py_None,
|
self->strerror ? self->strerror: Py_None,
|
||||||
self->filename);
|
self->filename);
|
||||||
if (self->winerror && self->strerror)
|
if (self->winerror && self->strerror)
|
||||||
return PyUnicode_FromFormat("[Error %S] %S",
|
return PyUnicode_FromFormat("[WinError %S] %S",
|
||||||
self->winerror ? self->winerror: Py_None,
|
self->winerror ? self->winerror: Py_None,
|
||||||
self->strerror ? self->strerror: Py_None);
|
self->strerror ? self->strerror: Py_None);
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue