simplify load_setuptools_entrypoints and refine comments/docstrings
--HG-- branch : more_plugin
This commit is contained in:
		
							parent
							
								
									c54afbe42e
								
							
						
					
					
						commit
						b2d66b9e7b
					
				|  | @ -800,7 +800,10 @@ class Config(object): | ||||||
|             args[:] = self.getini("addopts") + args |             args[:] = self.getini("addopts") + args | ||||||
|         self._checkversion() |         self._checkversion() | ||||||
|         self.pluginmanager.consider_preparse(args) |         self.pluginmanager.consider_preparse(args) | ||||||
|         self.pluginmanager.load_setuptools_entrypoints("pytest11") |         try: | ||||||
|  |             self.pluginmanager.load_setuptools_entrypoints("pytest11") | ||||||
|  |         except ImportError as e: | ||||||
|  |             self.warn("I2", "could not load setuptools entry import: %s" % (e,)) | ||||||
|         self.pluginmanager.consider_env() |         self.pluginmanager.consider_env() | ||||||
|         self.known_args_namespace = ns = self._parser.parse_known_args(args) |         self.known_args_namespace = ns = self._parser.parse_known_args(args) | ||||||
|         try: |         try: | ||||||
|  |  | ||||||
|  | @ -256,10 +256,6 @@ class PluginManager(object): | ||||||
|             return hc |             return hc | ||||||
|         return orig |         return orig | ||||||
| 
 | 
 | ||||||
|     def get_canonical_name(self, plugin): |  | ||||||
|         """ Return canonical name for a plugin object. """ |  | ||||||
|         return getattr(plugin, "__name__", None) or str(id(plugin)) |  | ||||||
| 
 |  | ||||||
|     def register(self, plugin, name=None): |     def register(self, plugin, name=None): | ||||||
|         """ Register a plugin and return its canonical name or None if the name |         """ Register a plugin and return its canonical name or None if the name | ||||||
|         is blocked from registering.  Raise a ValueError if the plugin is already |         is blocked from registering.  Raise a ValueError if the plugin is already | ||||||
|  | @ -344,6 +340,13 @@ class PluginManager(object): | ||||||
|         """ Return True if the plugin is already registered. """ |         """ Return True if the plugin is already registered. """ | ||||||
|         return plugin in self._plugin2hookcallers |         return plugin in self._plugin2hookcallers | ||||||
| 
 | 
 | ||||||
|  |     def get_canonical_name(self, plugin): | ||||||
|  |         """ Return canonical name for a plugin object. Note that a plugin | ||||||
|  |         may be registered under a different name which was specified | ||||||
|  |         by the caller of register(plugin, name). To obtain the name | ||||||
|  |         of an registered plugin use ``get_name(plugin)`` instead.""" | ||||||
|  |         return getattr(plugin, "__name__", None) or str(id(plugin)) | ||||||
|  | 
 | ||||||
|     def get_plugin(self, name): |     def get_plugin(self, name): | ||||||
|         """ Return a plugin or None for the given name. """ |         """ Return a plugin or None for the given name. """ | ||||||
|         return self._name2plugin.get(name) |         return self._name2plugin.get(name) | ||||||
|  | @ -386,14 +389,11 @@ class PluginManager(object): | ||||||
|                                 "unknown hook %r in plugin %r" %(name, plugin)) |                                 "unknown hook %r in plugin %r" %(name, plugin)) | ||||||
| 
 | 
 | ||||||
|     def load_setuptools_entrypoints(self, entrypoint_name): |     def load_setuptools_entrypoints(self, entrypoint_name): | ||||||
|         """ Load modules from querying the specified entrypoint name. |         """ Load modules from querying the specified setuptools entrypoint name. | ||||||
|         Return None if setuptools was not operable, otherwise |         Return the number of loaded plugins. """ | ||||||
|         the number of loaded plugins. """ |         from pkg_resources import iter_entry_points, DistributionNotFound | ||||||
|         try: |  | ||||||
|             from pkg_resources import iter_entry_points, DistributionNotFound |  | ||||||
|         except ImportError: |  | ||||||
|             return # XXX issue a warning |  | ||||||
|         for ep in iter_entry_points(entrypoint_name): |         for ep in iter_entry_points(entrypoint_name): | ||||||
|  |             # is the plugin registered or blocked? | ||||||
|             if self.get_plugin(ep.name) or ep.name in self._name2plugin: |             if self.get_plugin(ep.name) or ep.name in self._name2plugin: | ||||||
|                 continue |                 continue | ||||||
|             try: |             try: | ||||||
|  |  | ||||||
|  | @ -419,8 +419,8 @@ class TestAddMethodOrdering: | ||||||
|     def test_load_setuptools_not_installed(self, monkeypatch, pm): |     def test_load_setuptools_not_installed(self, monkeypatch, pm): | ||||||
|         monkeypatch.setitem(py.std.sys.modules, 'pkg_resources', |         monkeypatch.setitem(py.std.sys.modules, 'pkg_resources', | ||||||
|             py.std.types.ModuleType("pkg_resources")) |             py.std.types.ModuleType("pkg_resources")) | ||||||
|         assert pm.load_setuptools_entrypoints("qwe") is None |         with pytest.raises(ImportError): | ||||||
|         # ok, we did not explode |             pm.load_setuptools_entrypoints("qwe") | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class TestPytestPluginInteractions: | class TestPytestPluginInteractions: | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue