assert-with-print-message (RUF030)#
Fix is always available.
This rule is unstable and in preview. The --preview flag is required for use.
What it does#
Checks for uses of assert expression, print(message).
Why is this bad?#
The return value of the second expression is used as the contents of the
AssertionError raised by the assert statement. Using a print expression
in this context will output the message to stdout, before raising an
empty AssertionError(None).
Instead, remove the print and pass the message directly as the second
expression, allowing stderr to capture the message in a well-formatted context.
Example#
Use instead:
Fix safety#
This rule's fix is marked as unsafe, as changing the second expression
will result in a different AssertionError message being raised, as well as
a change in stdout output.