Coming from a jUnit background, one of the things I always missed with the vanilla Python unitttest library was parameterized tests. Oftentimes when writing unit tests for a particular unit you find yourself writing effectively the same test over and over again, but with different inputs. Wouldn't it be nice if we could write the test once and somehow parameterize the test with different inputs? Yes. Yes it would.
The idea is you can write a loop over a set of inputs, and within that loop define a test within a with
context. Each iteration will test the given input and failures for each are counted as separate test failures. Really
handy for cutting down on unit test boilerplate code.