Socket
Socket
Sign inDemoInstall

flake8-pytest-style

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

flake8-pytest-style

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


Maintainers
1

flake8-pytest-style

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

Description

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

Currently the following errors are reported:

CodeDescription
PT001use @pytest.fixture() over @pytest.fixture
(configurable by pytest-fixture-no-parentheses)
PT002configuration for fixture '{name}' specified via positional args, use kwargs
PT003scope='function' is implied in @pytest.fixture()
PT004fixture '{name}' does not return anything, add leading underscore
PT005fixture '{name}' returns a value, remove leading underscore
PT006wrong name(s) type in @pytest.mark.parametrize, expected {expected_type}
(configurable by pytest-parametrize-names-type)
PT007wrong values type in @pytest.mark.parametrize, expected {expected_type}
(configurable by pytest-parametrize-values-type and pytest-parametrize-values-row-type)
PT008use return_value= instead of patching with lambda
PT009use a regular assert instead of unittest-style '{assertion}'
PT010set the expected exception in pytest.raises()
PT011pytest.raises({exception}) is too broad, set the match parameter or use a more specific exception
(configurable by pytest-raises-require-match-for)
PT012pytest.raises() block should contain a single simple statement
PT013found incorrect import of pytest, use simple 'import pytest' instead
PT014found duplicate test cases {indexes} in @pytest.mark.parametrize
PT015assertion always fails, replace with pytest.fail()
PT016no message passed to pytest.fail()
PT017found assertion on exception {name} in except block, use pytest.raises() instead
PT018assertion should be broken down into multiple parts
PT019fixture {name} without value is injected as parameter, use @pytest.mark.usefixtures instead
PT020@pytest.yield_fixture is deprecated, use @pytest.fixture
PT021use yield instead of request.addfinalizer
PT022no teardown in fixture {name}, use return instead of yield
PT023use @pytest.mark.foo() over @pytest.mark.foo
(configurable by pytest-mark-no-parentheses)
PT024pytest.mark.asyncio is unnecessary for fixtures
PT025pytest.mark.usefixtures has no effect on fixtures
PT026useless pytest.mark.usefixtures without parameters
PT027use pytest.raises() instead of unittest-style '{assertion}'

Installation

pip install flake8-pytest-style

Configuration

The plugin has the following configuration options:

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

For developers

Install deps and setup pre-commit hook

make init

Run linters, autoformat, tests etc.

make format lint test

Bump new version

make bump_major
make bump_minor
make bump_patch

License

MIT

Change Log

Unreleased

...

2.0.0 - 2024-04-01

  • BREAKING: invert default values for pytest-fixture-no-parentheses and pytest-mark-no-parentheses to conform with pytest official style
    • If you get a lot of PT001 or PT023 violations after upgrading, consider setting explicit values for these configuration options
  • require at least Python 3.8.1
  • support Python 3.12

1.7.2 - 2023-02-15

  • fix false positive for PT009 on pytest.fail

1.7.1 - 2023-02-15

  • update list of unittest-style assert methods for PT009/PT027

1.7.0 - 2023-02-09

  • require at least Python 3.7.2
  • support Python 3.11
  • add PT027 (checks for unittest-style assertRaises)

1.6.0 - 2021-12-23

  • require at least Python 3.6.2
  • expose py.typed file

1.5.1 - 2021-11-05

  • better wording for PT011
  • support Python 3.10

1.5.0 - 2021-06-18

  • add PT025 (checks for erroneous pytest.mark.usefixtures on fixtures)
  • add PT026 (checks for pytest.mark.usefixtures without parameters)

1.4.4 - 2021-06-17

  • fix PT023 not checking marks in classes
  • fix PT004 incorrectly firing on fixtures with yield from

1.4.2 - 2021-05-24

  • update flake8-plugin-utils version to improve stability

1.4.1 - 2021-04-01

  • fix argparse-related warnings

1.4.0 - 2021-03-14

  • add PT023 (checks for parentheses consistency in pytest.mark usage)
  • add PT024 (checks for unnecessary pytest.mark.asyncio on fixtures)
  • fix PT004, PT005 firing on abstract fixtures
  • fix PT012 firing on with statements containing a single pass

1.3.0 - 2020-08-30

  • add PT022 (checks for yield fixtures without teardown)

1.2.3 - 2020-08-06

  • update flake8-plugin-utils dependency to fix encoding problems on Windows

1.2.2 - 2020-07-23

  • fix PT004/PT005 inspecting returns of nested functions

1.2.1 - 2020-06-15

  • fix PT021 for factory fixtures (#46)

1.2.0 - 2020-06-12

  • support scoped mocker fixtures from pytest-mock for PT008
  • check for positional-only lambda arguments in PT008
  • add PT020 (checks for pytest.yield_fixture)
  • add PT021 (checks for request.addfinalizer)
  • add documentation pages for all rules

1.1.1 - 2020-04-17

  • fix PT011 not reporting match='' as a violation

1.1.0 - 2020-04-14

  • add PT015 (checks for assert False)
  • add PT016 (checks for pytest.fail() without message)
  • add PT017 (checks for assertions on exceptions in except blocks)
  • add PT018 (checks for composite assertions)
  • add PT019 (checks for fixtures without value injected as parameters)

1.0.0 - 2020-03-26

  • add PT014 (checks for duplicate test cases in @pytest.mark.parametrize)

0.6.0 - 2020-03-21

  • add configuration option pytest-parametrize-names-type for PT006
  • add configuration options pytest-parametrize-values-type and pytest-parametrize-values-row-type for PT007

0.5.0 - 2020-03-09

  • add configuration option pytest-fixture-no-parentheses for PT001
  • add PT013 (checks for from-imports from pytest)

0.4.0 - 2020-03-09

  • add PT012 (checks for multiple statements in with pytest.raises())

0.3.1 - 2020-03-09

  • fix default value of pytest-raises-require-match-for config option

0.3.0 - 2020-03-09

  • add PT010 and PT011 (checks for pytest.raises parameters)

0.2.0 - 2020-03-01

0.1.3 - 2019-05-24

  • add yield fixtures support
  • fix changelog entry for 0.1.2

0.1.2 - 2019-05-23

  • fix parametrize checkers not working in decorators

0.1.1 - 2019-05-23

  • update PyPI description

0.1.0 - 2019-05-23

  • initial

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc