[Python-checkins] python/dist/src/Lib doctest.py,1.82,1.83

edloper at users.sourceforge.net edloper at users.sourceforge.net
Thu Aug 26 01:07:05 CEST 2004


Update of /cvsroot/python/python/dist/src/Lib
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23763/dist/src/Lib
Modified Files:
	doctest.py 
Log Message:
Only recognize the expected output as an exception if it *starts* with
a traceback message. I.e., examples that raise exceptions may no
longer generate pre-exception output. This restores the behavior of
doctest in python 2.3. The ability to check pre-exception output is
being removed because it makes the documentation simpler; and because
there are very few use cases for it.
Index: doctest.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/doctest.py,v
retrieving revision 1.82
retrieving revision 1.83
diff -u -d -r1.82 -r1.83
--- doctest.py	23 Aug 2004 22:42:55 -0000	1.82
+++ doctest.py	25 Aug 2004 23:07:02 -0000	1.83
@@ -1281,15 +1281,14 @@
 
 # A regular expression for handling `want` strings that contain
 # expected exceptions. It divides `want` into three pieces:
- # - the pre-exception output (`want`)
 # - the traceback header line (`hdr`)
+ # - the traceback stack (`stack`)
 # - the exception message (`msg`), as generated by
 # traceback.format_exception_only()
 # `msg` may have multiple lines. We assume/require that the
 # exception message is the first non-indented line starting with a word
 # character following the traceback header line.
 _EXCEPTION_RE = re.compile(r"""
- (?P<want> .*?) # suck up everything until traceback header
 # Grab the traceback header. Different versions of Python have
 # said different things on the first traceback line.
 ^(?P<hdr> Traceback\ \(
@@ -1297,9 +1296,9 @@
 | innermost\ last
 ) \) :
 )
- \s* $ # toss trailing whitespace on traceback header
- .*? # don't blink: absorb stuff until a line *starts* with \w
- ^ (?P<msg> \w+ .*)
+ \s* $ # toss trailing whitespace on the header.
+ (?P<stack> .*?) # don't blink: absorb stuff until...
+ ^ (?P<msg> \w+ .*) # a line *starts* with alphanum.
 """, re.VERBOSE | re.MULTILINE | re.DOTALL)
 
 def __run(self, test, compileflags, out):
@@ -1374,13 +1373,10 @@
 exc_info)
 failures += 1
 else:
- e_want, e_msg = m.group('want', 'msg')
- # The test passes iff the pre-exception output and
- # the exception description match the values given
- # in `want`.
- if (self._checker.check_output(e_want, got,
- self.optionflags) and
- self._checker.check_output(e_msg, exc_msg,
+ # The test passes iff the expected exception
+ # message (`m.group('msg')`) matches the actual
+ # exception message (`exc_msg`).
+ if (self._checker.check_output(m.group('msg'), exc_msg,
 self.optionflags)):
 self.report_success(out, test, example,
 got + _exception_traceback(exc_info))


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /