[TIP] unittest2 assertRaises failure message

Olemis Lang olemis at gmail.com
Tue Jan 15 07:31:37 PST 2013

On 1/13/13, Julian Berman <julian at grayvines.com> wrote:
> Loops in test methods are somewhat precarious things.

.. not if things get a bit meta ... ;)

> If something
> unexpected happens (like your sequence being unexpectedly empty, say),
> you've now got quite the false sense of security. Guard assertions can
> help,

understood , but this is not he case

> but often there's a more clear way to eliminate the loop.

yes , copy / paste , thus having a very long test case full of duplicated code .

> That being said, assertRaises in Py3 takes a msg keyword arg
> In the absence of that, I'd recommend using the simple thing:
> for i in stuff:
>     try:
>         whatever(i)
>     except ThingError:
>         pass
>     else:
>         self.fail("Expected ThingError for %r" % x)

jftr , I came up with a different solution available in this patch
[1]_ . I don't know whether it's worthy to include something like that
upstream in unittest2 , but should be generic enough for other people
requiring a similar solution . It retrieves test case locals which are
supplied in for string interpolation with

.. [1] Patch: BH Multiproduct #115 : Test cases improved. Logging
capabilities in assertRaises



Blog ES: http://simelo-es.blogspot.com/
Blog EN: http://simelo-en.blogspot.com/

Featured article:

More information about the testing-in-python mailing list