So, I'm trying to match an exception with a doctest.
>>> api = Api("foo", "bar") # doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last):
...
AuthError
The issue is that this works with py2.7 but not with python 3. The format of exception trace has been changed so now it include the full module name. I.e. in python 3 I have package.module.AuthError
instead.
Is there a way to match both? Seems like IGNORE_EXCEPTION_DETAIL
has no effect here.
When the tests include values that are likely to change in unpredictable ways, and where the actual value is not important to the test results, you can use the ELLIPSIS option to tell doctest to ignore portions of the verification value.
The doctest module searches for pieces of text that look like interactive Python sessions, and then executes those sessions to verify that they work exactly as shown.
This was unintentionally broken by a patch for a related issue: IGNORE_EXCEPTION_DETAIL should ignore the module name
and the unintended behavior you're seeing is an open issue here: doctest.IGNORE_EXCEPTION_DETAIL doesn't match when no detail exists
So it's a bug, according to me. Which is pretty good assurance it will get fixed, since I wrote doctest
to begin with ;-) In the meantime, you may want to try the patch attached to the 2nd bug report.
Followup: Last night I checked in a fix for this, which will appear in the next releases of Pythons 2.7, 3.3, and 3.4. Thanks for the nudge :-)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With