@@ -41,17 +41,28 @@ def setup_module(machinery, name, path=None):
41
41
root = machinery .WindowsRegistryFinder .REGISTRY_KEY
42
42
key = root .format (fullname = name ,
43
43
sys_version = '%d.%d' % sys .version_info [:2 ])
44
+ base_key = "Software\\ Python\\ PythonCore\\ {}.{}" .format (
45
+ sys .version_info .major , sys .version_info .minor )
46
+ assert key .casefold ().startswith (base_key .casefold ()), (
47
+ "expected key '{}' to start with '{}'" .format (key , base_key ))
44
48
try :
45
49
with temp_module (name , "a = 1" ) as location :
50
+ try :
51
+ OpenKey (HKEY_CURRENT_USER , base_key )
52
+ if machinery .WindowsRegistryFinder .DEBUG_BUILD :
53
+ delete_key = os .path .dirname (key )
54
+ else :
55
+ delete_key = key
56
+ except OSError :
57
+ delete_key = base_key
46
58
subkey = CreateKey (HKEY_CURRENT_USER , key )
47
59
if path is None :
48
60
path = location + ".py"
49
61
SetValue (subkey , "" , REG_SZ , path )
50
62
yield
51
63
finally :
52
- if machinery .WindowsRegistryFinder .DEBUG_BUILD :
53
- key = os .path .dirname (key )
54
- delete_registry_tree (HKEY_CURRENT_USER , key )
64
+ if delete_key :
65
+ delete_registry_tree (HKEY_CURRENT_USER , delete_key )
55
66
56
67
57
68
@unittest .skipUnless (sys .platform .startswith ('win' ), 'requires Windows' )
0 commit comments