Спасибо. Я уже боялся, что не будет никакого способа обойти код вне строки документации. Тем не менее я подумал, что может быть хитрость, чтобы импортировать локальные функции и таким образом получить доступ к вложенным функциям. В любом случае, решение, использующее подход Алекса, будет выглядеть так:
def foo(debug=False):
"""
>>> foo()
testfoo
>>> foo(debug=True)
"""
def foo2():
"""
>>> 1/0"""
print 'testfoo'
if debug :
import doctest
for f in [foo2]: doctest.run_docstring_examples(f,locals())
foo2()
Теперь единственный вопрос - как автоматизировать этот подход, чтобы у кого-то было что-то вроде
for f in locals().values(): doctest.run_docstring_examples(f,locals())
но без импортированных и встроенных функций и переменных.