mirror of
https://github.com/python/cpython.git
synced 2025-11-02 03:01:58 +00:00
Issue #16169: Fix ctypes.WinError()'s confusion between errno and winerror
This commit is contained in:
parent
38714d64d0
commit
ea69bd3ce1
3 changed files with 25 additions and 1 deletions
|
|
@ -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":
|
||||||
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):
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,8 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #16169: Fix ctypes.WinError()'s confusion between errno and winerror.
|
||||||
|
|
||||||
- Issue #16089: Allow ElementTree.TreeBuilder to work again with a non-Element
|
- Issue #16089: Allow ElementTree.TreeBuilder to work again with a non-Element
|
||||||
element_factory (fixes a regression in SimpleTAL).
|
element_factory (fixes a regression in SimpleTAL).
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue