[Distutils] buildout: bin/test --coverage
Thomas Lotze
thomas at thomas-lotze.de
Tue Feb 12 21:19:52 CET 2008
Marius Gedminas wrote:
> It's not a problem with the recipe, it's a problem with zope.testing, or,
Sorry, that should have been obvious to me. No idea what made me blame it
on the recipe...
> more fundamentally, with Python. The sys.settrace hook used to
> implement coverage tracing is non-recursive.
>
> zope.testing tests its own ability to do coverage tracing, and since the
> test is run in the same Python process as the test runner, the side
> effect of the test's calling sys.settrace is that the runner is no
> longer able to trace coverage.
Ah, this makes some sense since the function that was reported uncovered
after the change is tested later in the same doc test.
> list(obj) cals obj.__len__ as an optimization. This results in an
> infinite recursive loop, but then list(obj) traps that, hides it, and
> does the brute-force list conversion. As a side effect of sys.settrace,
> the stack overflow RuntimeError happens inside the tracing hook and
> Python removes it for misbehaving. Tracing stops from that point on.
That's what I call gory details...
> Python's doctest also had side effects that used to disable tracing.
OK, so it's no longer a subject for this list at least.
--
Thomas
More information about the Distutils-SIG
mailing list