Skip to content

pytest-composite-assertion (PT018)

Derived from the flake8-pytest-style linter.

Fix is sometimes available.

What it does

Checks for assertions that combine multiple independent conditions.

Why is this bad?

Composite assertion statements are harder to debug upon failure, as the failure message will not indicate which condition failed.

Example

def test_foo():
    assert something and something_else


def test_bar():
    assert not (something or something_else)

Use instead:

def test_foo():
    assert something
    assert something_else


def test_bar():
    assert not something
    assert not something_else