How can I hide my stack frames in a TestCase subclass?
Manuel Pégourié-Gonnard
mpg at elzevir.fr
Fri Oct 5 04:50:45 EDT 2012
Peter Otten scripsit :
> Manuel Pégourié-Gonnard wrote:
>
>> Peter Otten scripsit :
>>
>>> __unittest = True
>>>
>> Hum, is it documented somewhere? I can't find it in the doc. Also, I'm
>> curious to know what kind of magic it's using.
>
> I took advantage of the fact that Python is open source and had a look into
> the source code ;)
>
Fair enough.
However, there was an implied question in the "documented" part: can
we rely on it? Isn't it considered an implementation detail (names
starting with underscores)?
> $ cd /usr/lib/python2.7/unittest
> $ grep frame *.py -C2
> ...
> result.py-
> result.py- def _is_relevant_tb_level(self, tb):
> result.py: return '__unittest' in tb.tb_frame.f_globals
> result.py-
> ...
>
> $ grep _is_relevant_tb_level *.py -C5
> result.py-
> result.py- def _exc_info_to_string(self, err, test):
> result.py- """Converts a sys.exc_info()-style tuple of values into a
> string."""
> result.py- exctype, value, tb = err
> result.py- # Skip test runner traceback levels
> result.py: while tb and self._is_relevant_tb_level(tb):
> result.py- tb = tb.tb_next
> result.py-
> ...
>
> And so on. I actually used an editor, not grep -- but you get the idea.
Sure, thanks.
--
Manuel Pégourié-Gonnard - http://people.math.jussieu.fr/~mpg/
More information about the Python-list
mailing list