Kaydet (Commit) 934f5633 authored tarafından Richard Oudkerk's avatar Richard Oudkerk

Issue #16169: Merge

...@@ -456,7 +456,7 @@ if _os.name in ("nt", "ce"): ...@@ -456,7 +456,7 @@ if _os.name in ("nt", "ce"):
code = GetLastError() code = GetLastError()
if descr is None: if descr is None:
descr = FormatError(code).strip() descr = FormatError(code).strip()
return WindowsError(code, descr) return WindowsError(None, descr, None, code)
if sizeof(c_uint) == sizeof(c_void_p): if sizeof(c_uint) == sizeof(c_void_p):
c_size_t = c_uint c_size_t = c_uint
......
...@@ -67,6 +67,28 @@ if sys.platform == "win32": ...@@ -67,6 +67,28 @@ if sys.platform == "win32":
self.assertEqual(ex.text, "text") self.assertEqual(ex.text, "text")
self.assertEqual(ex.details, ("details",)) self.assertEqual(ex.details, ("details",))
class TestWinError(unittest.TestCase):
def test_winerror(self):
# see Issue 16169
import errno
ERROR_INVALID_PARAMETER = 87
msg = FormatError(ERROR_INVALID_PARAMETER).strip()
args = (errno.EINVAL, msg, None, ERROR_INVALID_PARAMETER)
e = WinError(ERROR_INVALID_PARAMETER)
self.assertEqual(e.args, args)
self.assertEqual(e.errno, errno.EINVAL)
self.assertEqual(e.winerror, ERROR_INVALID_PARAMETER)
windll.kernel32.SetLastError(ERROR_INVALID_PARAMETER)
try:
raise WinError()
except OSError as exc:
e = exc
self.assertEqual(e.args, args)
self.assertEqual(e.errno, errno.EINVAL)
self.assertEqual(e.winerror, ERROR_INVALID_PARAMETER)
class Structures(unittest.TestCase): class Structures(unittest.TestCase):
def test_struct_by_value(self): def test_struct_by_value(self):
......
...@@ -42,6 +42,8 @@ Core and Builtins ...@@ -42,6 +42,8 @@ Core and Builtins
Library Library
------- -------
- Issue #16169: Fix ctypes.WinError()'s confusion between errno and winerror.
- Issue #1492704: shutil.copyfile() raises a distinct SameFileError now if - Issue #1492704: shutil.copyfile() raises a distinct SameFileError now if
source and destination are the same file. Patch by Atsuo Ishimoto. source and destination are the same file. Patch by Atsuo Ishimoto.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment