问题描述
我正在编写一个 Python 模块,它指定了一组入口点,以便其他主机模块可以发现新的功能。我正在遵循 official documentation 中指定的 setuptools 方法。
例如,下面的代码片段显示了通过 sample.contribution
命名的 hello-world 的贡献,它指向 timmins.hello_world 属性。
[options.entry_points]
sample.contribution =
hello-world = timmins:hello_world
假设宿主插件定义了一个类似下面的方法来加载 sample.contributions 扩展。
def load_contributions():
...
我想做的是编写一个测试,确保entry_point 被主机模块正确加载。目前,测试此类入口点加载的唯一方法是构建一个轮子并通过 pip 安装它。一旦安装,entry_point 就可以成功加载了。
所以,我的问题是......有没有办法在 setup.py(或 setup.cfg)中添加指定的 entry_points,以便在测试执行期间加载它们?即,对定义调用 load_contributions
方法时返回贡献的 entry_point 的模块进行测试
解决方法
也许使用 tox 来执行一组测试命令是正确的选择。 这种方法将开发的模块安装到虚拟环境中,因此在调用命令时会加载其入口点。