From 5b63fbfd443f41a738146af7e91f848dac1747cb Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 29 Jan 2012 10:29:44 +0100 Subject: [PATCH] Closes #860: Do not crash when encountering invalid doctest examples, just emit a warning. --- CHANGES | 3 +++ sphinx/ext/doctest.py | 9 +++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index d17038b2c..bb3475929 100644 --- a/CHANGES +++ b/CHANGES @@ -17,6 +17,9 @@ Release 1.1.3 (in development) * #859: Fix exception under certain circumstances when not finding appropriate objects to link to. +* #860: Do not crash when encountering invalid doctest examples, just + emit a warning. + Release 1.1.2 (Nov 1, 2011) -- 1.1.1 is a silly version number anyway! ====================================================================== diff --git a/sphinx/ext/doctest.py b/sphinx/ext/doctest.py index fdf4f2f4d..3e3298266 100644 --- a/sphinx/ext/doctest.py +++ b/sphinx/ext/doctest.py @@ -375,8 +375,13 @@ Doctest summary for code in group.tests: if len(code) == 1: # ordinary doctests (code/output interleaved) - test = parser.get_doctest(code[0].code, {}, group.name, - filename, code[0].lineno) + try: + test = parser.get_doctest(code[0].code, {}, group.name, + filename, code[0].lineno) + except Exception: + self.warn('ignoring invalid doctest code: %r' % code[0].code, + '%s:%s' % (filename, code[0].lineno)) + continue if not test.examples: continue for example in test.examples: