@@ -60,17 +60,28 @@ def setup_module(machinery, name, path=None):
6060 root = machinery .WindowsRegistryFinder .REGISTRY_KEY
6161 key = root .format (fullname = name ,
6262 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 ))
6367 try :
6468 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
6577 subkey = CreateKey (HKEY_CURRENT_USER , key )
6678 if path is None :
6779 path = location + ".py"
6880 SetValue (subkey , "" , REG_SZ , path )
6981 yield
7082 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 )
7485
7586
7687@unittest .skipUnless (sys .platform .startswith ('win' ), 'requires Windows' )
0 commit comments