New submission from Pat LaVarre: SUMMARY:
Calling doctest.testmod more than once before SystemExit spews stderr messages such as "*** DocTestRunner.merge: '__main__' in both testers; summing outcomes" STEPS TO REPRODUCE: $ cat tttestmod.py import doctest doctest.testmod() # 1 doctest.testmod() # 2 doctest.testmod() # 3 $ ACTUAL RESULTS: $ python ./tttestmod.py *** DocTestRunner.merge: '__main__' in both testers; summing outcomes. *** DocTestRunner.merge: '__main__' in both testers; summing outcomes. $ EXPECTED RESULTS: $ python ./tttestmod.py $ WORKAROUND: Filter stdout.write calls from doctest.py to squelch the noise. REGRESSION/ ISOLATION: $ python --version Python 2.5.1 $ Also mentioned 2006-10 in comp.lang.python at DocTestRunner.merge verbose, i.e., http://groups.google.com/group/comp.lang.python/search? group=comp.lang.python&q=DocTestRunner.merge+verbose Not yet found in Bugs.python.org at DocTestRunner. NOTES: We can reasonably expect newbies to doctest random things that need to be doctested more than once. We can't reasonably expect newbies to know to how to filter doctest stdout, for example as below. #!/usr/bin/env python r""" ttestmod.py Filter Doctest stdout a la http://wiki.python.org/moin/doctest to call doctest.testmod more than once per SystemExit without producing noise. >>> import random >>> import sys >>> >>> die = random.randint(1, 6) >>> print >>sys.stderr, die >>> >>> die == 6 True >>> """ import sys class DocTestOutput: def __init__(self, out = sys.stdout): self.out = out self.write = self.writeOut self.quietly = False def writeOut(self, bytes): head = "*** DocTestRunner.merge: '__main__" tail = "' in both testers; summing outcomes." if bytes.startswith(head): if bytes.endswith(tail): self.quietly = True if not self.quietly: self.out.write(bytes) if 0 <= bytes.find('\n'): self.quietly = False if __name__ == '__main__': import doctest sys.stdout = DocTestOutput() doctest.testmod() doctest.testmod() ---------- components: Library (Lib) messages: 58533 nosy: [EMAIL PROTECTED] severity: normal status: open title: doctest.testmod gets noisy if called more than once per SystemExit type: behavior versions: Python 2.5 __________________________________ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1611> __________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com