def setup_module(machinery, name, path=None): if machinery.WindowsRegistryFinder.DEBUG_BUILD: root = machinery.WindowsRegistryFinder.REGISTRY_KEY_DEBUG else: root = machinery.WindowsRegistryFinder.REGISTRY_KEY key = root.format(fullname=name, sys_version='%d.%d' % sys.version_info[:2]) base_key = "Software\\Python\\PythonCore\\{}.{}".format( sys.version_info.major, sys.version_info.minor) assert key.casefold().startswith(base_key.casefold()), ( "expected key '{}' to start with '{}'".format(key, base_key)) try: with temp_module(name, "a = 1") as location: try: OpenKey(HKEY_CURRENT_USER, base_key) if machinery.WindowsRegistryFinder.DEBUG_BUILD: delete_key = os.path.dirname(key) else: delete_key = key except OSError: delete_key = base_key subkey = CreateKey(HKEY_CURRENT_USER, key) if path is None: path = location + ".py" SetValue(subkey, "", REG_SZ, path) yield finally: if delete_key: delete_registry_tree(HKEY_CURRENT_USER, delete_key)
def test_reload_submodule(self): # See #19851. name = 'spam' subname = 'ham' with test_util.temp_module(name, pkg=True) as pkg_dir: fullname, _ = test_util.submodule(name, subname, pkg_dir) ham = self.init.import_module(fullname) reloaded = self.init.reload(ham) self.assertIs(reloaded, ham)
def test_find_relative_module_missing_package(self): name = 'spam' subname = 'ham' with util.temp_module(name, pkg=True) as pkg_dir: fullname, _ = util.submodule(name, subname, pkg_dir) relname = '.' + subname with self.assertRaises(ImportError): self.util.find_spec(relname) self.assertNotIn(name, sorted(sys.modules)) self.assertNotIn(fullname, sorted(sys.modules))
def test_find_submodule(self): name = 'spam' subname = 'ham' with util.temp_module(name, pkg=True) as pkg_dir: fullname, _ = util.submodule(name, subname, pkg_dir) spec = self.util.find_spec(fullname) self.assertIsNot(spec, None) self.assertIn(name, sorted(sys.modules)) self.assertNotIn(fullname, sorted(sys.modules)) # Ensure successive calls behave the same. spec_again = self.util.find_spec(fullname) self.assertEqual(spec_again, spec)
def setup_module(machinery, name, path=None): if machinery.WindowsRegistryFinder.DEBUG_BUILD: root = machinery.WindowsRegistryFinder.REGISTRY_KEY_DEBUG else: root = machinery.WindowsRegistryFinder.REGISTRY_KEY key = root.format(fullname=name, sys_version='%d.%d' % sys.version_info[:2]) try: with temp_module(name, "a = 1") as location: subkey = CreateKey(HKEY_CURRENT_USER, key) if path is None: path = location + ".py" SetValue(subkey, "", REG_SZ, path) yield finally: if machinery.WindowsRegistryFinder.DEBUG_BUILD: key = os.path.dirname(key) delete_registry_tree(HKEY_CURRENT_USER, key)