@@ -60,17 +60,28 @@ def setup_module(machinery, name, path=None):
60
60
root = machinery .WindowsRegistryFinder .REGISTRY_KEY
61
61
key = root .format (fullname = name ,
62
62
sys_version = '%d.%d' % sys .version_info [:2 ])
63
+ base_key = "Software\\ Python\\ PythonCore\\ {}.{}" .format (
64
+ sys .version_info .major , sys .version_info .minor )
65
+ assert key .casefold ().startswith (base_key .casefold ()), (
66
+ "expected key '{}' to start with '{}'" .format (key , base_key ))
63
67
try :
64
68
with temp_module (name , "a = 1" ) as location :
69
+ try :
70
+ OpenKey (HKEY_CURRENT_USER , base_key )
71
+ if machinery .WindowsRegistryFinder .DEBUG_BUILD :
72
+ delete_key = os .path .dirname (key )
73
+ else :
74
+ delete_key = key
75
+ except OSError :
76
+ delete_key = base_key
65
77
subkey = CreateKey (HKEY_CURRENT_USER , key )
66
78
if path is None :
67
79
path = location + ".py"
68
80
SetValue (subkey , "" , REG_SZ , path )
69
81
yield
70
82
finally :
71
- if machinery .WindowsRegistryFinder .DEBUG_BUILD :
72
- key = os .path .dirname (key )
73
- delete_registry_tree (HKEY_CURRENT_USER , key )
83
+ if delete_key :
84
+ delete_registry_tree (HKEY_CURRENT_USER , delete_key )
74
85
75
86
76
87
@unittest .skipUnless (sys .platform .startswith ('win' ), 'requires Windows' )
0 commit comments