все Python 3doctestисключение
doctest.UnexpectedException
исключения
Исключение DebugRunner: пример бросил исключение, которого ожидаемый вывод не предусматривал. Исходная ошибка лежит в exc_info.
Синтаксис
except doctest.UnexpectedException as e: e.test, e.example, e.exc_info
exc_info — тройка (тип, значение, трассировка), как у sys.exc_info(); исходное исключение — e.exc_info[1]. Его же можно передать в pdb.post_mortem(e.exc_info[2]), чтобы оказаться в кадре, где всё упало. Если ожидаемый вывод начинается с Traceback, это уже не неожиданность, а обычная проверка.
Примеры
import doctest
test = doctest.DocTestParser().get_doctest(">>> int('x')\n0\n", {}, "t", None, 0)
try:
doctest.DebugRunner().run(test)
except doctest.UnexpectedException as e:
print(type(e.exc_info[1]).__name__, e.example.source.strip()) # → ValueError int('x')
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности