[Python-checkins] r50886 - in python/branches/release24-maint: Lib/doctest.py Lib/test/test_doctest.py Misc/NEWS
tim.peters
python-checkins at python.org
Fri Jul 28 01:56:16 CEST 2006
Author: tim.peters
Date: Fri Jul 28 01:56:12 2006
New Revision: 50886
Modified:
python/branches/release24-maint/Lib/doctest.py
python/branches/release24-maint/Lib/test/test_doctest.py
python/branches/release24-maint/Misc/NEWS
Log:
Merge rev 50882 from the trunk.
Bug #1529297: The rewrite of doctest for Python 2.4 unintentionally
lost that tests are sorted by name before being run. ``DocTestFinder``
has been changed to sort the list of tests it returns.
Modified: python/branches/release24-maint/Lib/doctest.py
==============================================================================
--- python/branches/release24-maint/Lib/doctest.py (original)
+++ python/branches/release24-maint/Lib/doctest.py Fri Jul 28 01:56:12 2006
@@ -848,6 +848,11 @@
# Recursively expore `obj`, extracting DocTests.
tests = []
self._find(tests, obj, name, module, source_lines, globs, {})
+ # Sort the tests by alpha order of names, for consistency in
+ # verbose-mode output. This was a feature of doctest in Pythons
+ # <= 2.3 that got lost by accident in 2.4. It was repaired in
+ # 2.4.4 and 2.5.
+ tests.sort()
return tests
def _filter(self, obj, prefix, base):
Modified: python/branches/release24-maint/Lib/test/test_doctest.py
==============================================================================
--- python/branches/release24-maint/Lib/test/test_doctest.py (original)
+++ python/branches/release24-maint/Lib/test/test_doctest.py Fri Jul 28 01:56:12 2006
@@ -419,7 +419,6 @@
>>> finder = doctest.DocTestFinder()
>>> tests = finder.find(SampleClass)
- >>> tests.sort()
>>> for t in tests:
... print '%2s %s' % (len(t.examples), t.name)
3 SampleClass
@@ -435,7 +434,6 @@
New-style classes are also supported:
>>> tests = finder.find(SampleNewStyleClass)
- >>> tests.sort()
>>> for t in tests:
... print '%2s %s' % (len(t.examples), t.name)
1 SampleNewStyleClass
@@ -475,7 +473,6 @@
>>> # ignoring the objects since they weren't defined in m.
>>> import test.test_doctest
>>> tests = finder.find(m, module=test.test_doctest)
- >>> tests.sort()
>>> for t in tests:
... print '%2s %s' % (len(t.examples), t.name)
1 some_module
@@ -499,7 +496,6 @@
>>> from test import doctest_aliases
>>> tests = excl_empty_finder.find(doctest_aliases)
- >>> tests.sort()
>>> print len(tests)
2
>>> print tests[0].name
@@ -521,7 +517,6 @@
>>> def namefilter(prefix, base):
... return base.startswith('a_')
>>> tests = doctest.DocTestFinder(_namefilter=namefilter).find(SampleClass)
- >>> tests.sort()
>>> for t in tests:
... print '%2s %s' % (len(t.examples), t.name)
3 SampleClass
@@ -538,7 +533,6 @@
>>> tests = doctest.DocTestFinder(_namefilter=namefilter,
... exclude_empty=False).find(SampleClass)
- >>> tests.sort()
>>> for t in tests:
... print '%2s %s' % (len(t.examples), t.name)
3 SampleClass
@@ -582,7 +576,6 @@
using the `recurse` flag:
>>> tests = doctest.DocTestFinder(recurse=False).find(SampleClass)
- >>> tests.sort()
>>> for t in tests:
... print '%2s %s' % (len(t.examples), t.name)
3 SampleClass
Modified: python/branches/release24-maint/Misc/NEWS
==============================================================================
--- python/branches/release24-maint/Misc/NEWS (original)
+++ python/branches/release24-maint/Misc/NEWS Fri Jul 28 01:56:12 2006
@@ -31,9 +31,9 @@
Extension Modules
-----------------
-- Bug #1471938: Fix curses module build problem on Solaris 8; patch by
+- Bug #1471938: Fix curses module build problem on Solaris 8; patch by
Paul Eggert.
-
+
- Bug #1512695: cPickle.loads could crash if it was interrupted with
a KeyboardInterrupt.
@@ -64,6 +64,12 @@
Library
-------
+- Bug #1529297: The rewrite of doctest for Python 2.4 unintentionally
+ lost that tests are sorted by name before being run. This rarely
+ matters for well-written tests, but can create baffling symptoms if
+ side effects from one test to the next affect outcomes. ``DocTestFinder``
+ has been changed to sort the list of tests it returns.
+
- The email package has improved RFC 2231 support, specifically for
recognizing the difference between encoded (name*0*=<blah>) and non-encoded
(name*0=<blah>) parameter continuations. This may change the types of
More information about the Python-checkins
mailing list