跳转到主要内容

一个flake8插件,用于检查基于pytest的测试中的常见样式问题或不一致。

项目描述

flake8-pytest-style

pypi Python: 3.7+ Downloads Build Status Code coverage License: MIT Code style: black

描述

A flake8 plugin checking common style issues or inconsistencies with pytest-based tests.

当前报告以下错误

代码 描述
PT001 使用 @pytest.fixture() 而不是 @pytest.fixture
(通过 pytest-fixture-no-parentheses 可配置)
PT002 通过位置参数指定的fixture '{name}' 的配置,请使用kwargs
PT003 在 @pytest.fixture() 中隐含 scope='function'
PT004 fixture '{name}' 不返回任何内容,添加前导下划线
PT005 fixture '{name}' 返回值,移除前导下划线
PT006 在 @pytest.mark.parametrize 中输入了错误的名字类型,期望 {expected_type}
(通过 pytest-parametrize-names-type 可配置)
PT007 在 @pytest.mark.parametrize 中输入了错误的值类型,期望 {expected_type}
(通过 pytest-parametrize-values-typepytest-parametrize-values-row-type 可配置)
PT008 使用 return_value= 而不是使用 lambda 进行修补
PT009 使用常规断言而不是 unittest-style '{assertion}'
PT010 在 pytest.raises() 中设置期望的异常
PT011 pytest.raises({exception}) 太宽泛了,设置 match 参数或使用更具体的异常
(通过 pytest-raises-require-match-for 可配置)
PT012 pytest.raises() 块应包含单个简单语句
PT013 发现 pytest 导入错误,请使用简单的 'import pytest' 代替
PT014 在 @pytest.mark.parametrize 中发现重复的测试用例 {indexes}
PT015 断言总是失败,请用 pytest.fail() 替换
PT016 未向 pytest.fail() 传递消息
PT017 在 except 块中发现对异常 {name} 的断言,请使用 pytest.raises() 代替
PT018 断言应分解成多个部分
PT019 没有值的 fixture {name} 作为参数注入,请使用 @pytest.mark.usefixtures
PT020 @pytest.yield_fixture 已弃用,请使用 @pytest.fixture
PT021 使用 yield 而不是 request.addfinalizer
PT022 fixture {name} 中没有拆卸,请使用 return 而不是 yield
PT023 使用 @pytest.mark.foo() 而不是 @pytest.mark.foo
(由 pytest-mark-no-parentheses 配置)
PT024 pytest.mark.asyncio 对于 fixture 是不必要的
PT025 pytest.mark.usefixtures 对 fixture 没有影响
PT026 无参数的无用的 pytest.mark.usefixtures
PT027 使用 pytest.raises() 而不是 unittest 风格的 '{assertion}'

安装

pip install flake8-pytest-style

配置

该插件有以下配置选项

  • pytest-fixture-no-parentheses — 请参阅 PT001
  • pytest-parametrize-names-type — 请参阅 PT006
  • pytest-parametrize-values-type — 请参阅 PT007
  • pytest-parametrize-values-row-type — 请参阅 PT007
  • pytest-raises-require-match-for — 请参阅 PT011
  • pytest-mark-no-parentheses — 请参阅 PT023

对于开发者

安装依赖项并设置 pre-commit 钩子

make init

运行 linters,自动格式化,测试等。

make format lint test

提升新版本

make bump_major
make bump_minor
make bump_patch

许可证

MIT

变更日志

未发布

...

2.0.0 - 2024-04-01

  • 重大变更:pytest-fixture-no-parenthesespytest-mark-no-parentheses 的默认值反转,以符合 pytest 官方风格
    • 如果您在升级后收到了大量的 PT001PT023 违规,请考虑为这些配置选项设置显式值
  • 需要至少 Python 3.8.1
  • 支持 Python 3.12

1.7.2 - 2023-02-15

  • 修复了 pytest.failPT009 错误

1.7.1 - 2023-02-15

  • 更新了 PT009/PT027 的 unittest 风格断言方法列表

1.7.0 - 2023-02-09

  • 需要至少 Python 3.7.2
  • 支持 Python 3.11
  • 添加 PT027 (检查 unittest 风格的 assertRaises)

1.6.0 - 2021-12-23

  • 需要至少 Python 3.6.2
  • 公开 py.typed 文件

1.5.1 - 2021-11-05

  • 改进了 PT011 的措辞
  • 支持 Python 3.10

1.5.0 - 2021-06-18

  • 添加 PT025 (检查 fixture 上的错误使用 pytest.mark.usefixtures)
  • 添加 PT026 (检查无参数的 pytest.mark.usefixtures)

1.4.4 - 2021-06-17

  • 修复了 PT023 没有检查类中的标记
  • 修复了 PT004 在具有 yield from 的 fixture 上错误触发的问题

1.4.2 - 2021-05-24

  • 更新 flake8-plugin-utils 版本以提高稳定性

1.4.1 - 2021-04-01

  • 修复与 argparse 相关的警告

1.4.0 - 2021-03-14

  • 添加 PT023(检查 pytest.mark 使用中的括号一致性)
  • 添加 PT024(检查 fixture 中不必要的 pytest.mark.asyncio
  • 修复在抽象 fixture 上触发 PT004PT005 的问题
  • 修复在包含单个 passwith 语句上触发 PT012 的问题

1.3.0 - 2020-08-30

  • 添加 PT022(检查没有 teardown 的 yield fixture)

1.2.3 - 2020-08-06

  • 更新 flake8-plugin-utils 依赖项以修复 Windows 上的编码问题

1.2.2 - 2020-07-23

  • 修复检查嵌套函数返回值的 PT004/PT005

1.2.1 - 2020-06-15

  • 修复 factory fixture 的 PT021 问题 (#46)

1.2.0 - 2020-06-12

  • 支持 pytest-mock 的作用域 mocker fixture 以支持 PT008
  • PT008 中检查位置参数的 lambda 参数
  • 添加 PT020(检查 pytest.yield_fixture
  • 添加 PT021(检查 request.addfinalizer
  • 为所有规则添加文档页面

1.1.1 - 2020-04-17

  • 修复 PT011 未报告 match='' 为违规问题

1.1.0 - 2020-04-14

  • 添加 PT015(检查 assert False
  • 添加 PT016(检查没有消息的 pytest.fail()
  • 添加 PT017(检查 except 块中的异常断言)
  • 添加 PT018(检查复合断言)
  • 添加 PT019(检查没有值作为参数注入的 fixture)

1.0.0 - 2020-03-26

  • 添加 PT014(检查 @pytest.mark.parametrize 中的重复测试用例)

0.6.0 - 2020-03-21

  • PT006 添加配置选项 pytest-parametrize-names-type
  • PT007 添加配置选项 pytest-parametrize-values-typepytest-parametrize-values-row-type

0.5.0 - 2020-03-09

  • PT001 添加配置选项 pytest-fixture-no-parentheses
  • 添加 PT013(检查从 pytestfrom 导入)

0.4.0 - 2020-03-09

  • 添加 PT012(检查 with pytest.raises() 中的多个语句)

0.3.1 - 2020-03-09

  • 修复 pytest-raises-require-match-for 配置选项的默认值

0.3.0 - 2020-03-09

  • 添加 PT010PT011(检查 pytest.raises 参数)

0.2.0 - 2020-03-01

0.1.3 - 2019-05-24

  • 添加 yield fixture 支持
  • 修复 0.1.2 的变更日志条目

0.1.2 - 2019-05-23

  • 修复装饰器中不工作的 parametrize 检查器

0.1.1 - 2019-05-23

  • 更新 PyPI 描述

0.1.0 - 2019-05-23

  • 初始

项目详情


下载文件

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

源代码分发

flake8_pytest_style-2.0.0.tar.gz (16.5 kB 查看哈希值)

上传时间 源代码

构建分发

flake8_pytest_style-2.0.0-py3-none-any.whl (19.5 kB 查看哈希值)

上传时间 Python 3

支持者