跳转到主要内容

可重复使用的JupyterHub pytest插件

项目描述

描述 | 安装 | 使用 | 贡献


可重复使用的JupyterHub Pytest插件

Latest PyPI version Documentation status GitHub Workflow Status - Test GitHub Test coverage of code

描述

这是一个用于测试JupyterHub组件的可重复使用的pytest插件。

JupyterHub 是一个模块化和可扩展的项目,具有组件,如 代理认证器启动器,可以轻松替换为其他实现。测试这些组件与 JupyterHub 的兼容性非常重要,并且需要各种复杂的 hub 配置。

这些 hub 组件以及 hub 本身都定义了自己的测试基础设施,从零开始使用 pytest 框架构建一切。其中一些复杂的工作在 JupyterHub 子项目中可能重复,或者对某些项目来说定义不足。这激发了对将这些通用部分抽象为单独测试框架的需求。

目标是提供可导入的测试工具,以便贡献者更容易为各种 hub 组件编写测试。这将涉及创建和使用 fixturesmocks

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 (31.8 kB 查看哈希值)

上传时间 源码

构建分发

pytest_jupyterhub-0.1.0-py3-none-any.whl (7.1 kB 查看哈希值)

上传时间 Python 3

支持者