[Numpy-discussion] Testing -heads up with #random
Fernando Perez
fperez.net@gmail....
Thu Jul 17 03:25:25 CDT 2008
Hi Alan,
I was trying to reuse your #random checker for ipython but kept
running into problems. Is it working for you in numpy in actual code?
Because in the entire SVN tree I only see it mentioned here:
maqroll[numpy]> grin #random
./numpy/testing/nosetester.py:
43 : if "#random" in want:
67 : # "#random" directive to allow executing a command
while ignoring its
375 : # try the #random directive on the output line
379 : <BadExample object at 0x084D05AC> #random: may vary on your system
maqroll[numpy]>
I'm asking because I suspect it is NOT working for numpy. The reason
is some really nasty, silent exception trapping being done by nose.
In nose's loadTestsFromModule, which you've overridden to include:
yield NumpyDocTestCase(test,
optionflags=optionflags,
checker=NumpyDoctestOutputChecker())
it's likely that this line can cause an exception (at least it was
doing it for me in ipython, because this class inherits from npd but
tries to directly call __init__ from doctest.DocTestCase).
Unfortunately, nose will silently swallow *any* exception there,
simply ignoring your tests and not even telling you what happened.
Very, very annoying. You can see if you have an exception by doing
something like
try:
dt = DocTestCase(test,
optionflags=optionflags,
checker=checker)
except:
from IPython import ultraTB
ultraTB.AutoFormattedTB()()
yield dt
to force a traceback printing.
Anyway, I mention this because I just wasted a good chunk of time
fighting this one for ipython, where I need the #random functionality.
It seems it's not used in numpy yet, but I imagine it will soon, and
I figured I'd save you some time.
Cheers,
f
More information about the Numpy-discussion
mailing list