Welcome to Flake8-AAA’s documentation

Travis build Read the Docs PyPI PyPI - Python Version flake8-aaa is licensed under the MIT License


A linter for Python tests.

  • A Flake8 interface to automatically lint test files as part of your Flake8 run.

  • A command line interface for custom (non-Flake8) usage and debugging.

  • Tests are linted against the Arrange Act Assert pattern.

    TL;DR following the AAA pattern means tests look like this:

    def test():
        <ARRANGE block> # set up of the system under test (SUT)
        <ACT block> # perform a single action on the SUT
        <ASSERT block> # check that the SUT changed as expected

    You might want to take a look at the examples.


  • Pytest and unittest styles of testing supported.
  • Compatible with Black formatted code.
  • Tested on latest three versions of Python: 3.5, 3.6 and 3.7.
  • Python 2 supported up to v0.4.0: pypi, docs, tag.

See the “Compatibility list” on ReadTheDocs for full info.


Install with pip:

$ pip install flake8-aaa

Integration with Flake8

Given that you already have Flake8 installed in the same environment, check that Flake8-AAA was installed correctly by asking flake8 for its version signature:

$ flake8 --version
3.7.7 (aaa: 0.6.2, mccabe: 0.6.1, pycodestyle: 2.5.0, pyflakes: 2.1.1) CPython 3.6.7 on Linux

The aaa: 0.6.2 part of that output tells you Flake8 found this plugin. Now you can run flake8 as usual against your project and Flake8-AAA will lint your tests via its plugin:

$ flake8