Pattern – expected failures

Sometimes, we have tests that are failing, but, for whatever reason, we don't want to fix it yet. It could be that we found a bug and wrote a failing test that demonstrates the bug (a very good practice), but we have decided to fix the bug later. Now, the whole test suite is failing.

On one hand, we don't want the suite to fail because we know this bug and want to fix it later. On the other hand, we don't want to remove the test from the suite because it reminds us that we need to fix the bug. What do we do?

Python's unittest module provides a solution: marking tests as expected failures. We can do this by applying the unittest.expectedFailure decorator to the test. The following is an example of it in action:

class AlertTest(unittest.TestCase): ...

Get Test-Driven Python Development now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.