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