测试入口点贡献

问题描述

我正在编写一个 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 来执行一组测试命令是正确的选择。 这种方法将开发的模块安装到虚拟环境中,因此在调用命令时会加载其入口点。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...