A flake8 plugin checking common style issues or inconsistencies with pytest-based tests.
Project description
flake8-pytest-style
Description
A flake8
plugin checking common style issues or inconsistencies with pytest
-based tests.
Currently the following errors are reported:
-
PT001 use @pytest.fixture() over @pytest.fixture
-
PT002 configuration for fixture '{name}' specified via positional args, use kwargs
e.g.@pytest.fixture(scope='module')
is OK, and@pytest.fixture('module')
is an error -
PT003 scope='function' is implied in @pytest.fixture()
e.g.@pytest.fixture(scope='function')
should be replaced with@pytest.fixture()
-
PT004 fixture '{name}' does not return anything, add leading underscore
-
PT005 fixture '{name}' returns a value, remove leading underscore
-
PT006 wrong name(s) type in @pytest.mark.parametrize, expected {expected_type}
e.g.@pytest.mark.parametrize(('name1', 'name2'), ...)
is ok, and@pytest.mark.parametrize('name1,name2', ...)
is an error -
PT007 wrong values type in @pytest.mark.parametrize, expected {expected_type}
-
PT008 use return_value= instead of patching with lambda
e.g.mocker.patch('target', return_value=7)
is OK, andmocker.patch('target', lambda *args: 7)
is an error -
PT009 use a regular assert instead of unittest-style '{assertion}'
-
PT010 set the expected exception in pytest.raises()
-
PT011 set the match parameter in pytest.raises({exception})
e.g.pytest.raises(ValueError, match='exception text')
is OK, andpytest.raises(ValueError)
is an error.
The exception list is controlled by the configuration optionpytest-raises-require-match-for
.
Installation
pip install flake8-pytest-style
Configuration
The plugin has the following configuration options:
pytest-raises-require-match-for
Comma-separated list of exception names that require amatch=
parameter in apytest.raises()
call, as checked byPT011
. By default the list contains the following exceptions:BaseException
,Exception
ValueError
OSError
,IOError
,EnvironmentError
,socket.error
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
...
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
andPT011
(checks forpytest.raises
parameters)
0.2.0 - 2020-03-01
- add
PT009
(ported from flake8-pytest)
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for flake8-pytest-style-0.3.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | addb4682375d8a479f5ffe01bb74d78689ea353f1170c3f97ae25f6ba01c4834 |
|
MD5 | 9fa075c46b7f66213e0f3e5f5a19d894 |
|
BLAKE2b-256 | 0c3d9cb200ce43f164cf7e6993884c32a76ef3d9caa2b2460f40909fcaeff32b |
Hashes for flake8_pytest_style-0.3.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a84f82dc48fdebe28747db26746e2e9afcc9a6df3948b573273dac1c474bbac |
|
MD5 | 46d4e3c63eebd1a9226bcb38fc089322 |
|
BLAKE2b-256 | 50ebc7441b93e4859b019c73a933e02bba76e23e85f0c12d3b13b0490747e40e |