(self)
| 517 | |
| 518 | @unittest.skipUnless(HAS_REFLECTION, "OS doesn't support reflection") |
| 519 | def test_disable_reflection(self): |
| 520 | # Make use of a key which gets redirected and reflected |
| 521 | try: |
| 522 | with CreateKeyEx(HKEY_CURRENT_USER, test_reflect_key_name, 0, |
| 523 | KEY_ALL_ACCESS | KEY_WOW64_32KEY) as created_key: |
| 524 | # QueryReflectionKey returns whether or not the key is disabled |
| 525 | disabled = QueryReflectionKey(created_key) |
| 526 | self.assertEqual(type(disabled), bool) |
| 527 | # HKCU\Software\Classes is reflected by default |
| 528 | self.assertFalse(disabled) |
| 529 | |
| 530 | DisableReflectionKey(created_key) |
| 531 | self.assertTrue(QueryReflectionKey(created_key)) |
| 532 | |
| 533 | # The key is now closed and would normally be reflected to the |
| 534 | # 64-bit area, but let's make sure that didn't happen. |
| 535 | open_fail = lambda: OpenKeyEx(HKEY_CURRENT_USER, |
| 536 | test_reflect_key_name, 0, |
| 537 | KEY_READ | KEY_WOW64_64KEY) |
| 538 | self.assertRaises(OSError, open_fail) |
| 539 | |
| 540 | # Make sure the 32-bit key is actually there |
| 541 | with OpenKeyEx(HKEY_CURRENT_USER, test_reflect_key_name, 0, |
| 542 | KEY_READ | KEY_WOW64_32KEY) as key: |
| 543 | self.assertNotEqual(key.handle, 0) |
| 544 | finally: |
| 545 | DeleteKeyEx(HKEY_CURRENT_USER, test_reflect_key_name, |
| 546 | KEY_WOW64_32KEY, 0) |
| 547 | |
| 548 | def test_exception_numbers(self): |
| 549 | with self.assertRaises(FileNotFoundError) as ctx: |
nothing calls this directly
no test coverage detected