跳转到主要内容

将pytest fixtures定义为上下文管理器。

项目描述

pytest-contextfixture使您能够将pytest fixtures定义为上下文管理器。

上下文fixture的工作方式类似于标准fixture,但它允许将定义编写为生成器。这简化了拆解代码,并允许在fixture中使用其他上下文管理器。

安装

pip安装pytest-contextfixture

用法

考虑以下示例,使用标准的pytest.fixture

import pytest

@pytest.fixture
def dependency(request)
    def teardown():
        # fixture teardown code goes here
    request.addfinalizer(teardown)

    return 1234

def test_foo(dependency):
    assert fn_under_test(dependency) == 'expected'

使用pytest.contextfixture,这相当于

import pytest

@pytest.contextfixture
def dependency(request):
    # fixture setup code goes here
    yield 1234
    # fixture teardown code goes here

def test_foo(dependency):
    assert fn_under_test(dependency) == 'expected'

虽然这是一种稍微更好的语法,但在使用其他上下文管理器获取fixture的依赖项时,这变得更有用

@pytest_contextfixture
def dependency(request):
    with setup_something():
        with setup_something_else() as d:
            yield d

def test_foo(dependency):
    assert fn_under_test(dependency) == 'expected'

test_foo将在setup_something和setup_something_else的上下文中运行。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

pytest-contextfixture-0.1.1.tar.gz (3.2 kB 查看哈希值)

上传时间:

由以下支持