测试 entry_point 贡献

Testing a entry_point contribution

我正在编写一个 Python 模块,它指定了一组 entry_points,因此其他主机模块可以发现新功能。我遵循 official documentation.

中指定的设置工具方法

例如,下面的代码片段显示了通过 sample.contribution 命名的 hello-world 的贡献,它指向 timmins.hello_world 属性。

[options.entry_points]
sample.contribution =
    hello-world = timmins:hello_world

让我们假设主机插件定义了一个如下所示的方法来加载 sample.contributions 个扩展。

def load_contributions():
   ...

我想做的是编写一个测试,确保 entry_point 被主机模块正确加载。目前,测试这种 entry_point 加载的唯一方法是构建一个轮子并 pip 安装它。安装后,entry_point可以加载成功。

所以,我的问题是...是否有任何方法可以在 setup.py(或 setup.cfg)处添加指定的 entry_points,以便在测试执行期间加载它们?也就是说,对定义 entry_point 的模块的测试 returns 在调用 load_contributions 方法时的贡献

也许使用tox执行一组测试命令是正确的选择。 这种方法将开发的模块安装到虚拟环境中,因此它的 entry_points 在调用命令时被加载。