mirror of
https://github.com/python/cpython.git
synced 2025-08-31 14:07:50 +00:00
#7855: merge with 3.3.
This commit is contained in:
commit
4e59af7abd
5 changed files with 51 additions and 1 deletions
|
@ -62,7 +62,7 @@ def get_tests(package, mask, verbosity, exclude=()):
|
||||||
continue
|
continue
|
||||||
try:
|
try:
|
||||||
mod = __import__(modname, globals(), locals(), ['*'])
|
mod = __import__(modname, globals(), locals(), ['*'])
|
||||||
except ResourceDenied as detail:
|
except (ResourceDenied, unittest.SkipTest) as detail:
|
||||||
skipped.append(modname)
|
skipped.append(modname)
|
||||||
if verbosity > 1:
|
if verbosity > 1:
|
||||||
print("Skipped %s: %s" % (modname, detail), file=sys.stderr)
|
print("Skipped %s: %s" % (modname, detail), file=sys.stderr)
|
||||||
|
|
43
Lib/ctypes/test/test_wintypes.py
Normal file
43
Lib/ctypes/test/test_wintypes.py
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
import sys
|
||||||
|
import unittest
|
||||||
|
|
||||||
|
if not sys.platform.startswith('win'):
|
||||||
|
raise unittest.SkipTest('Windows-only test')
|
||||||
|
|
||||||
|
from ctypes import *
|
||||||
|
from ctypes import wintypes
|
||||||
|
|
||||||
|
class WinTypesTest(unittest.TestCase):
|
||||||
|
def test_variant_bool(self):
|
||||||
|
# reads 16-bits from memory, anything non-zero is True
|
||||||
|
for true_value in (1, 32767, 32768, 65535, 65537):
|
||||||
|
true = POINTER(c_int16)(c_int16(true_value))
|
||||||
|
value = cast(true, POINTER(wintypes.VARIANT_BOOL))
|
||||||
|
self.assertEqual(repr(value.contents), 'VARIANT_BOOL(True)')
|
||||||
|
|
||||||
|
vb = wintypes.VARIANT_BOOL()
|
||||||
|
self.assertIs(vb.value, False)
|
||||||
|
vb.value = True
|
||||||
|
self.assertIs(vb.value, True)
|
||||||
|
vb.value = true_value
|
||||||
|
self.assertIs(vb.value, True)
|
||||||
|
|
||||||
|
for false_value in (0, 65536, 262144, 2**33):
|
||||||
|
false = POINTER(c_int16)(c_int16(false_value))
|
||||||
|
value = cast(false, POINTER(wintypes.VARIANT_BOOL))
|
||||||
|
self.assertEqual(repr(value.contents), 'VARIANT_BOOL(False)')
|
||||||
|
|
||||||
|
# allow any bool conversion on assignment to value
|
||||||
|
for set_value in (65536, 262144, 2**33):
|
||||||
|
vb = wintypes.VARIANT_BOOL()
|
||||||
|
vb.value = set_value
|
||||||
|
self.assertIs(vb.value, True)
|
||||||
|
|
||||||
|
vb = wintypes.VARIANT_BOOL()
|
||||||
|
vb.value = [2, 3]
|
||||||
|
self.assertIs(vb.value, True)
|
||||||
|
vb.value = []
|
||||||
|
self.assertIs(vb.value, False)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
unittest.main()
|
|
@ -457,6 +457,9 @@ class Win64WinregTests(BaseWinregTests):
|
||||||
DeleteKeyEx(HKEY_CURRENT_USER, test_reflect_key_name,
|
DeleteKeyEx(HKEY_CURRENT_USER, test_reflect_key_name,
|
||||||
KEY_WOW64_32KEY, 0)
|
KEY_WOW64_32KEY, 0)
|
||||||
|
|
||||||
|
def test_exception_numbers(self):
|
||||||
|
with self.assertRaises(FileNotFoundError) as ctx:
|
||||||
|
QueryValue(HKEY_CLASSES_ROOT, 'some_value_that_does_not_exist')
|
||||||
|
|
||||||
def test_main():
|
def test_main():
|
||||||
support.run_unittest(LocalWinregTests, RemoteWinregTests,
|
support.run_unittest(LocalWinregTests, RemoteWinregTests,
|
||||||
|
|
|
@ -1287,6 +1287,7 @@ Nikita Vetoshkin
|
||||||
Al Vezza
|
Al Vezza
|
||||||
Jacques A. Vidrine
|
Jacques A. Vidrine
|
||||||
John Viega
|
John Viega
|
||||||
|
Dino Viehland
|
||||||
Kannan Vijayan
|
Kannan Vijayan
|
||||||
Kurt Vile
|
Kurt Vile
|
||||||
Norman Vine
|
Norman Vine
|
||||||
|
|
|
@ -188,6 +188,9 @@ Library
|
||||||
Tests
|
Tests
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
- Issue #7855: Add tests for ctypes/winreg for issues found in IronPython.
|
||||||
|
Initial patch by Dino Viehland.
|
||||||
|
|
||||||
- Issue #11078: test___all__ now checks for duplicates in __all__.
|
- Issue #11078: test___all__ now checks for duplicates in __all__.
|
||||||
Initial patch by R. David Murray.
|
Initial patch by R. David Murray.
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue