跳到内容

pytest-incorrect-fixture-name-underscore (PT005)

源自 flake8-pytest-style linter。

警告:此规则已被移除,其文档仅供历史参考。

移除

此规则已被移除,因为 pytest 社区不建议使用下划线标记不返回值的 fixture。

作用

检查 pytest fixture 是否返回一个值,但名称却以一个前导下划线开头。

为什么这不好?

按照惯例,不返回值的 fixture 应该以一个前导下划线命名,而返回值 fixture 则不应该。

此规则忽略抽象 fixture。

示例

import pytest


@pytest.fixture()
def _some_object():
    return SomeClass()


@pytest.fixture()
def _some_object_with_cleanup():
    obj = SomeClass()
    yield obj
    obj.cleanup()

建议改为

import pytest


@pytest.fixture()
def some_object():
    return SomeClass()


@pytest.fixture()
def some_object_with_cleanup():
    obj = SomeClass()
    yield obj
    obj.cleanup()

参考