Skip to main content

pytest plugin to check source code with pyflakes

Project description


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.


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)]

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pytest-flakes, version 1.0.0
Filename, size File type Python version Upload date Hashes
Filename, size pytest-flakes-1.0.0.tar.gz (6.0 kB) File type Source Python version None Upload date Hashes View
Filename, size (11.1 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page