skip to navigation
skip to content

pytest-flakes 2.0.0

pytest plugin to check source code with pyflakes


py.test plugin for efficiently checking python source with pyflakes.


install via:

pip install pytest-flakes

if you then type:

py.test --flakes

every file ending in .py will be discovered and run through pyflakes, starting from the command line arguments.

Simple usage example

Consider you have this code:

# content of

import os
from os.path import *

def some_function():

Running it with pytest-flakes installed shows two issues:

$ py.test -q --flakes
================================= FAILURES =================================
______________________________ pyflakes-check ______________________________
/tmp/doc-exec-685/ UnusedImport
'os' imported but unused
/tmp/doc-exec-685/ ImportStarUsed
'from os.path import *' used; unable to detect undefined names
1 failed in 0.00 seconds

These are only two of the many issues that pytest-flakes can find.

Configuring pyflakes options per project and file

You may configure pyflakes-checking options for your project by adding an flakes-ignore entry to your setup.cfg or setup.cfg file like this:

# content of setup.cfg
flakes-ignore = ImportStarUsed

This would globally prevent complaints about star imports. Rerunning with the above example will now look better:

$ py.test -q --flakes
================================= FAILURES =================================
_________________ pyflakes-check(ignoring ImportStarUsed) __________________
/tmp/doc-exec-685/ UnusedImport
'os' imported but unused
1 failed in 0.00 seconds

But of course we still would want to delete the import os line to have a clean pass.

If you have some files where you want to specifically ignore some errors or warnings you can start a flakes-ignore line with a glob-pattern and a space-separated list of codes:

# content of setup.cfg
flakes-ignore =
    *.py UnusedImport
    doc/ ALL

Ignoring certain lines in files

You can ignore errors per line by appending special comments to them like this:

import sys # noqa
app # pragma: no flakes

Running pyflakes checks and no other tests

You can restrict your test run to only perform “flakes” tests and not any other tests by typing:

py.test --flakes -m flakes

This will only run tests that are marked with the “flakes” keyword which is added for the flakes test items added by this plugin.

If you are using pytest < 2.4, then use the following invocation to the same effect:

py.test --flakes -k flakes


The repository of this plugin is at

For more info on py.test see

The code is partially based on Ronny Pfannschmidt’s pytest-codecheckers plugin and Holger Krekel’s pytest-pep8.


2.0.0 - 2017-05-12

  • Dropped support/testing for Python 2.5, 2.6, 3.2. [fschulze]
  • Added testing for Python 3.6. [fschulze]
  • Fixed some packaging and metadata errors. [fladi (Michael Fladischer), fschulze]

1.0.1 - 2015-09-17

  • Compatibility with upcoming pytest. [RonnyPfannschmidt (Ronny Pfannschmidt)]

1.0.0 - 2015-05-01

  • Fix issue #6 - support PEP263 for source file encoding. [The-Compiler (Florian Bruhin), fschulze]
  • Clarified license to be MIT like pytest-pep8 from which this is derived. [fschulze]

0.2 - 2013-02-11

  • Adapt to pytest-2.4.2 using add_marker() API. [fschulze, hpk42 (Holger Krekel)]
  • Allow errors to be skipped per line by appending # noqa or # pragma: no flakes [fschulze, silviot (Silvio Tomatis)]
  • Python 3.x compatibility. [fschulze, encukou (Petr Viktorin)]

0.1 - 2013-02-04

  • Initial release. [fschulze (Florian Schulze)]
File Type Py Version Uploaded on Size
pytest-flakes-2.0.0.tar.gz (md5) Source 2017-05-12 6KB
pytest_flakes-2.0.0-py2.py3-none-any.whl (md5) Python Wheel 2.7 2017-05-12 7KB