可重复使用的JupyterHub pytest插件
项目描述
可重复使用的JupyterHub Pytest插件
描述
这是一个用于测试JupyterHub组件的可重复使用的pytest插件。
JupyterHub 是一个模块化和可扩展的项目,具有组件,如 代理、认证器 和 启动器,可以轻松替换为其他实现。测试这些组件与 JupyterHub 的兼容性非常重要,并且需要各种复杂的 hub 配置。
这些 hub 组件以及 hub 本身都定义了自己的测试基础设施,从零开始使用 pytest 框架构建一切。其中一些复杂的工作在 JupyterHub 子项目中可能重复,或者对某些项目来说定义不足。这激发了对将这些通用部分抽象为单独测试框架的需求。
目标是提供可导入的测试工具,以便贡献者更容易为各种 hub 组件编写测试。这将涉及创建和使用 fixtures 和 mocks。
Fixture 是一个用于为测试函数准备和清理环境的函数。Fixtures 可以用于设置测试数据、测试环境和其他测试函数所需的资源。有关 Fixtures 的更多信息,请参阅这个 pytest 文档。
Mock 是模拟另一个对象(如类或函数)行为的对象。它们用于模拟真实对象的行为,以便进行测试。有关 Mock 的更多信息,请参阅这个 unittest 文档。
安装
要使用 JupyterHub Pytest 插件,您首先需要使用 pip 安装它。
pip install pytest-jupyterhub
使用方法
要使用插件,首先在您的测试模块或 conftest.py
文件中注册/加载插件。
pytest_plugins = "jupyterhub-spawners-plugin"
要注册多个插件
pytest_plugins = ["jupyterhub-spawners-plugin", "other-plugin"]
有关更多信息,请参阅有关如何在测试模块或 conftest 文件中 要求/加载插件 的文档。
插件内的所有 fixtures 和 mocks 都可用于您项目的所有测试套件。您可以通过将 fixture 作为参数传递给测试函数来使用它。
示例
hub_app
fixture 是一个 factory fixture,它从提供的 config
字典创建一个 MockHub
实例,该字典定义了启动器特定的属性配置。然后它产生模拟实例。测试后,运行的 hub 实例会停止并执行清理。
以下提供了一个关于其在 DockerSpawner
测试套件 中集成的说明。
@pytest.fixture
async def app(hub_app):
config = {
"Dockerspawner": {
"prefix": "dockerspawner-test"
}
}
if len(jh_version_info) > 3 and jh_version_info[3]:
tag = jupyterhub.__version__
config["Dockerspawner"]["image"] = f"jupyterhub/singleuser:{tag}"
app = await hub_app(config=config)
return app
贡献
如果您想为此项目做出贡献,请阅读我们的 贡献者文档 和 CONTRIBUTING.md。
贡献者文档解释了如何设置开发安装,如何运行测试套件以及如何为文档做出贡献。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
构建分发
pytest_jupyterhub-0.1.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fbbff17d873ff5480631cf2299356fb1beef64eda74130f881189deb71cd0696 |
|
MD5 | 2d207b693dce954fa34f7cc6291be641 |
|
BLAKE2b-256 | 67d38831a887c6d939715a67c519be6827e5c84dc10b8492ca0b65e32a694df9 |
pytest_jupyterhub-0.1.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 28ee52ad1ffa1489b143976c911693c05886d1a0e2e33409d372a201472e07dc |
|
MD5 | fd12bc615aa3056026fe6c3866800050 |
|
BLAKE2b-256 | 0cd73c17cdd4d8f6eac5493e71314a017fddae90674076fe3739883c091af834 |