Serhiy Storchaka added the comment:

Patches updated incorporating Stefan's patch.

----------
Added file: 
http://bugs.python.org/file28850/tests_without_docstrings-2.7_3.patch
Added file: 
http://bugs.python.org/file28851/tests_without_docstrings-3.2_3.patch
Added file: 
http://bugs.python.org/file28852/tests_without_docstrings-3.3_3.patch

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue17041>
_______________________________________
diff -r 523f309cf558 Lib/ctypes/test/test_win32.py
--- a/Lib/ctypes/test/test_win32.py     Sat Jan 26 13:31:44 2013 +0100
+++ b/Lib/ctypes/test/test_win32.py     Sat Jan 26 16:59:23 2013 +0200
@@ -3,6 +3,7 @@
 from ctypes import *
 from ctypes.test import is_resource_enabled
 import unittest, sys
+from test import test_support as support
 
 import _ctypes_test
 
@@ -60,7 +61,9 @@
 
         def test_COMError(self):
             from _ctypes import COMError
-            self.assertEqual(COMError.__doc__, "Raised when a COM method call 
failed.")
+            if support.HAVE_DOCSTRINGS:
+                self.assertEqual(COMError.__doc__,
+                                "Raised when a COM method call failed.")
 
             ex = COMError(-1, "text", ("details",))
             self.assertEqual(ex.hresult, -1)
diff -r 523f309cf558 Lib/distutils/tests/test_build_ext.py
--- a/Lib/distutils/tests/test_build_ext.py     Sat Jan 26 13:31:44 2013 +0100
+++ b/Lib/distutils/tests/test_build_ext.py     Sat Jan 26 16:59:23 2013 +0200
@@ -77,8 +77,9 @@
         self.assertEqual(xx.foo(2, 5), 7)
         self.assertEqual(xx.foo(13,15), 28)
         self.assertEqual(xx.new().demo(), None)
-        doc = 'This is a template module just for instruction.'
-        self.assertEqual(xx.__doc__, doc)
+        if test_support.HAVE_DOCSTRINGS:
+            doc = 'This is a template module just for instruction.'
+            self.assertEqual(xx.__doc__, doc)
         self.assertTrue(isinstance(xx.Null(), xx.Null))
         self.assertTrue(isinstance(xx.Str(), xx.Str))
 
diff -r 523f309cf558 Lib/test/test_functools.py
--- a/Lib/test/test_functools.py        Sat Jan 26 13:31:44 2013 +0100
+++ b/Lib/test/test_functools.py        Sat Jan 26 16:59:23 2013 +0200
@@ -196,6 +196,7 @@
         self.assertEqual(wrapper.__name__, 'f')
         self.assertEqual(wrapper.attr, 'This is also a test')
 
+    @test_support.requires_docstrings
     @unittest.skipIf(sys.flags.optimize >= 2,
                      "Docstrings are omitted with -O2 and above")
     def test_default_update_doc(self):
diff -r 523f309cf558 Lib/test/test_pydoc.py
--- a/Lib/test/test_pydoc.py    Sat Jan 26 13:31:44 2013 +0100
+++ b/Lib/test/test_pydoc.py    Sat Jan 26 16:59:23 2013 +0200
@@ -10,12 +10,21 @@
 import xml.etree
 import test.test_support
 from collections import namedtuple
+import sysconfig
 from test.script_helper import assert_python_ok
 from test.test_support import (
     TESTFN, rmtree, reap_children, captured_stdout)
 
 from test import pydoc_mod
 
+if test.test_support.HAVE_DOCSTRINGS:
+    expected_data_docstrings = (
+        'dictionary for instance variables (if defined)',
+        'list of weak references to the object (if defined)',
+        )
+else:
+    expected_data_docstrings = ('', '', '', '')
+
 expected_text_pattern = \
 """
 NAME
@@ -40,11 +49,9 @@
     class B(__builtin__.object)
      |  Data descriptors defined here:
      |\x20\x20
-     |  __dict__
-     |      dictionary for instance variables (if defined)
+     |  __dict__%s
      |\x20\x20
-     |  __weakref__
-     |      list of weak references to the object (if defined)
+     |  __weakref__%s
      |\x20\x20
      |  ----------------------------------------------------------------------
      |  Data and other attributes defined here:
@@ -75,6 +82,9 @@
     Nobody
 """.strip()
 
+expected_text_data_docstrings = tuple('\n     |      ' + s if s else ''
+                                      for s in expected_data_docstrings)
+
 expected_html_pattern = \
 """
 <table width="100%%" cellspacing=0 cellpadding=2 border=0 summary="heading">
@@ -121,10 +131,10 @@
 <tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
 <td width="100%%">Data descriptors defined here:<br>
 <dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
+<dd><tt>%s</tt></dd>
 </dl>
 <dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
+<dd><tt>%s</tt></dd>
 </dl>
 <hr>
 Data and other attributes defined here:<br>
@@ -168,6 +178,8 @@
 <td width="100%%">Nobody</td></tr></table>
 """.strip()
 
+expected_html_data_docstrings = tuple(s.replace(' ', '&nbsp;')
+                                      for s in expected_data_docstrings)
 
 # output pattern for missing module
 missing_pattern = "no Python documentation found for '%s'"
@@ -229,7 +241,9 @@
             mod_url = nturl2path.pathname2url(mod_file)
         else:
             mod_url = mod_file
-        expected_html = expected_html_pattern % (mod_url, mod_file, doc_loc)
+        expected_html = expected_html_pattern % (
+                        (mod_url, mod_file, doc_loc) +
+                        expected_html_data_docstrings)
         if result != expected_html:
             print_diffs(expected_html, result)
             self.fail("outputs are not equal, see diff above")
@@ -238,8 +252,9 @@
                      "Docstrings are omitted with -O2 and above")
     def test_text_doc(self):
         result, doc_loc = get_pydoc_text(pydoc_mod)
-        expected_text = expected_text_pattern % \
-                        (inspect.getabsfile(pydoc_mod), doc_loc)
+        expected_text = expected_text_pattern % (
+                        (inspect.getabsfile(pydoc_mod), doc_loc) +
+                        expected_text_data_docstrings)
         if result != expected_text:
             print_diffs(expected_text, result)
             self.fail("outputs are not equal, see diff above")
diff -r 523f309cf558 Lib/test/test_support.py
--- a/Lib/test/test_support.py  Sat Jan 26 13:31:44 2013 +0100
+++ b/Lib/test/test_support.py  Sat Jan 26 16:59:23 2013 +0200
@@ -1112,10 +1112,6 @@
     else:
         return unittest.skip("resource {0!r} is not enabled".format(resource))
 
-requires_docstrings = unittest.skipUnless(
-    sysconfig.get_config_var('WITH_DOC_STRINGS'),
-    "test requires docstrings")
-
 def cpython_only(test):
     """
     Decorator for tests only applicable on CPython.
@@ -1193,6 +1189,16 @@
             suite.addTest(unittest.makeSuite(cls))
     _run_suite(suite)
 
+#=======================================================================
+# Check for the presence of docstrings.
+
+HAVE_DOCSTRINGS = (check_impl_detail(cpython=False) or
+                   sys.platform == 'win32' or
+                   sysconfig.get_config_var('WITH_DOC_STRINGS'))
+
+requires_docstrings = unittest.skipUnless(HAVE_DOCSTRINGS,
+                                          "test requires docstrings")
+
 
 #=======================================================================
 # doctest driver.
diff -r f7eda8165e6f Lib/ctypes/test/test_win32.py
--- a/Lib/ctypes/test/test_win32.py     Sat Jan 26 12:14:02 2013 +0200
+++ b/Lib/ctypes/test/test_win32.py     Sat Jan 26 16:59:32 2013 +0200
@@ -3,6 +3,7 @@
 from ctypes import *
 from ctypes.test import is_resource_enabled
 import unittest, sys
+from test import support
 
 import _ctypes_test
 
@@ -60,7 +61,9 @@
 
         def test_COMError(self):
             from _ctypes import COMError
-            self.assertEqual(COMError.__doc__, "Raised when a COM method call 
failed.")
+            if test.support.HAVE_DOCSTRINGS:
+                self.assertEqual(COMError.__doc__,
+                                 "Raised when a COM method call failed.")
 
             ex = COMError(-1, "text", ("details",))
             self.assertEqual(ex.hresult, -1)
diff -r f7eda8165e6f Lib/distutils/tests/test_build_ext.py
--- a/Lib/distutils/tests/test_build_ext.py     Sat Jan 26 12:14:02 2013 +0200
+++ b/Lib/distutils/tests/test_build_ext.py     Sat Jan 26 16:59:32 2013 +0200
@@ -73,8 +73,9 @@
         self.assertEqual(xx.foo(2, 5), 7)
         self.assertEqual(xx.foo(13,15), 28)
         self.assertEqual(xx.new().demo(), None)
-        doc = 'This is a template module just for instruction.'
-        self.assertEqual(xx.__doc__, doc)
+        if support.HAVE_DOCSTRINGS:
+            doc = 'This is a template module just for instruction.'
+            self.assertEqual(xx.__doc__, doc)
         self.assertTrue(isinstance(xx.Null(), xx.Null))
         self.assertTrue(isinstance(xx.Str(), xx.Str))
 
diff -r f7eda8165e6f Lib/test/support.py
--- a/Lib/test/support.py       Sat Jan 26 12:14:02 2013 +0200
+++ b/Lib/test/support.py       Sat Jan 26 16:59:32 2013 +0200
@@ -1477,6 +1477,16 @@
     _filter_suite(suite, case_pred)
     _run_suite(suite)
 
+#=======================================================================
+# Check for the presence of docstrings.
+
+HAVE_DOCSTRINGS = (check_impl_detail(cpython=False) or
+                   sys.platform == 'win32' or
+                   sysconfig.get_config_var('WITH_DOC_STRINGS'))
+
+requires_docstrings = unittest.skipUnless(HAVE_DOCSTRINGS,
+                                          "test requires docstrings")
+
 
 #=======================================================================
 # doctest driver.
diff -r f7eda8165e6f Lib/test/test_bytes.py
--- a/Lib/test/test_bytes.py    Sat Jan 26 12:14:02 2013 +0200
+++ b/Lib/test/test_bytes.py    Sat Jan 26 16:59:32 2013 +0200
@@ -986,6 +986,7 @@
         self.assertEqual(bytes(b"abc") < b"ab", False)
         self.assertEqual(bytes(b"abc") <= b"ab", False)
 
+    @test.support.requires_docstrings
     def test_doc(self):
         self.assertIsNotNone(bytearray.__doc__)
         self.assertTrue(bytearray.__doc__.startswith("bytearray("), 
bytearray.__doc__)
diff -r f7eda8165e6f Lib/test/test_functools.py
--- a/Lib/test/test_functools.py        Sat Jan 26 12:14:02 2013 +0200
+++ b/Lib/test/test_functools.py        Sat Jan 26 16:59:32 2013 +0200
@@ -287,6 +287,7 @@
         with self.assertRaises(AttributeError):
             functools.update_wrapper(wrapper, f, assign, update)
 
+    @support.requires_docstrings
     @unittest.skipIf(sys.flags.optimize >= 2,
                      "Docstrings are omitted with -O2 and above")
     def test_builtin_update(self):
diff -r f7eda8165e6f Lib/test/test_pydoc.py
--- a/Lib/test/test_pydoc.py    Sat Jan 26 12:14:02 2013 +0200
+++ b/Lib/test/test_pydoc.py    Sat Jan 26 16:59:32 2013 +0200
@@ -14,6 +14,7 @@
 import textwrap
 from io import StringIO
 from collections import namedtuple
+import sysconfig
 from test.script_helper import assert_python_ok
 from test.support import (
     TESTFN, rmtree,
@@ -30,6 +31,14 @@
 if hasattr(pydoc_mod, "__loader__"):
     del pydoc_mod.__loader__
 
+if test.support.HAVE_DOCSTRINGS:
+    expected_data_docstrings = (
+        'dictionary for instance variables (if defined)',
+        'list of weak references to the object (if defined)',
+        ) * 2
+else:
+    expected_data_docstrings = ('', '', '', '')
+
 expected_text_pattern = """
 NAME
     test.pydoc_mod - This is a test module for test_pydoc
@@ -50,20 +59,16 @@
      |  ----------------------------------------------------------------------
      |  Data descriptors defined here:
      |\x20\x20
-     |  __dict__
-     |      dictionary for instance variables (if defined)
+     |  __dict__%s
      |\x20\x20
-     |  __weakref__
-     |      list of weak references to the object (if defined)
+     |  __weakref__%s
 \x20\x20\x20\x20
     class B(builtins.object)
      |  Data descriptors defined here:
      |\x20\x20
-     |  __dict__
-     |      dictionary for instance variables (if defined)
+     |  __dict__%s
      |\x20\x20
-     |  __weakref__
-     |      list of weak references to the object (if defined)
+     |  __weakref__%s
      |\x20\x20
      |  ----------------------------------------------------------------------
      |  Data and other attributes defined here:
@@ -95,6 +100,9 @@
     %s
 """.strip()
 
+expected_text_data_docstrings = tuple('\n     |      ' + s if s else ''
+                                      for s in expected_data_docstrings)
+
 expected_html_pattern = """
 <table width="100%%" cellspacing=0 cellpadding=2 border=0 summary="heading">
 <tr bgcolor="#7799ee">
@@ -134,10 +142,10 @@
 <hr>
 Data descriptors defined here:<br>
 <dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
+<dd><tt>%s</tt></dd>
 </dl>
 <dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
+<dd><tt>%s</tt></dd>
 </dl>
 </td></tr></table> <p>
 <table width="100%%" cellspacing=0 cellpadding=2 border=0 summary="section">
@@ -148,10 +156,10 @@
 <tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
 <td width="100%%">Data descriptors defined here:<br>
 <dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
+<dd><tt>%s</tt></dd>
 </dl>
 <dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
+<dd><tt>%s</tt></dd>
 </dl>
 <hr>
 Data and other attributes defined here:<br>
@@ -193,6 +201,8 @@
 <td width="100%%">Nobody</td></tr></table>
 """.strip() # ' <- emacs turd
 
+expected_html_data_docstrings = tuple(s.replace(' ', '&nbsp;')
+                                      for s in expected_data_docstrings)
 
 # output pattern for missing module
 missing_pattern = "no Python documentation found for '%s'"
@@ -262,7 +272,9 @@
             mod_url = nturl2path.pathname2url(mod_file)
         else:
             mod_url = mod_file
-        expected_html = expected_html_pattern % (mod_url, mod_file, doc_loc)
+        expected_html = expected_html_pattern % (
+                        (mod_url, mod_file, doc_loc) +
+                        expected_html_data_docstrings)
         if result != expected_html:
             print_diffs(expected_html, result)
             self.fail("outputs are not equal, see diff above")
@@ -271,8 +283,10 @@
                      "Docstrings are omitted with -O2 and above")
     def test_text_doc(self):
         result, doc_loc = get_pydoc_text(pydoc_mod)
-        expected_text = expected_text_pattern % \
-                        (doc_loc, inspect.getabsfile(pydoc_mod))
+        expected_text = expected_text_pattern % (
+                        (doc_loc,) +
+                        expected_text_data_docstrings +
+                        (inspect.getabsfile(pydoc_mod),))
         if result != expected_text:
             print_diffs(expected_text, result)
             self.fail("outputs are not equal, see diff above")
@@ -346,8 +360,10 @@
                  captured_output('stderr') as err:
                 helper.help(module)
                 result = buf.getvalue().strip()
-                expected_text = expected_help_pattern % \
-                                (doc_loc, inspect.getabsfile(pydoc_mod))
+                expected_text = expected_help_pattern % (
+                                (doc_loc,) +
+                                expected_text_data_docstrings +
+                                (inspect.getabsfile(pydoc_mod),))
                 self.assertEqual('', output.getvalue())
                 self.assertEqual('', err.getvalue())
                 self.assertEqual(expected_text, result)
diff -r 0cd5d215179a Lib/ctypes/test/test_win32.py
--- a/Lib/ctypes/test/test_win32.py     Sat Jan 26 13:58:00 2013 +0100
+++ b/Lib/ctypes/test/test_win32.py     Sat Jan 26 16:59:39 2013 +0200
@@ -3,6 +3,7 @@
 from ctypes import *
 from ctypes.test import is_resource_enabled
 import unittest, sys
+from test import support
 
 import _ctypes_test
 
@@ -60,7 +61,9 @@
 
         def test_COMError(self):
             from _ctypes import COMError
-            self.assertEqual(COMError.__doc__, "Raised when a COM method call 
failed.")
+            if support.HAVE_DOCSTRINGS:
+                self.assertEqual(COMError.__doc__,
+                                 "Raised when a COM method call failed.")
 
             ex = COMError(-1, "text", ("details",))
             self.assertEqual(ex.hresult, -1)
diff -r 0cd5d215179a Lib/distutils/tests/test_build_ext.py
--- a/Lib/distutils/tests/test_build_ext.py     Sat Jan 26 13:58:00 2013 +0100
+++ b/Lib/distutils/tests/test_build_ext.py     Sat Jan 26 16:59:39 2013 +0200
@@ -73,8 +73,9 @@
         self.assertEqual(xx.foo(2, 5), 7)
         self.assertEqual(xx.foo(13,15), 28)
         self.assertEqual(xx.new().demo(), None)
-        doc = 'This is a template module just for instruction.'
-        self.assertEqual(xx.__doc__, doc)
+        if support.HAVE_DOCSTRINGS:
+            doc = 'This is a template module just for instruction.'
+            self.assertEqual(xx.__doc__, doc)
         self.assertTrue(isinstance(xx.Null(), xx.Null))
         self.assertTrue(isinstance(xx.Str(), xx.Str))
 
diff -r 0cd5d215179a Lib/test/support.py
--- a/Lib/test/support.py       Sat Jan 26 13:58:00 2013 +0100
+++ b/Lib/test/support.py       Sat Jan 26 16:59:39 2013 +0200
@@ -597,10 +597,6 @@
 
 requires_lzma = unittest.skipUnless(lzma, 'requires lzma')
 
-requires_docstrings = unittest.skipUnless(
-    sysconfig.get_config_var('WITH_DOC_STRINGS'),
-    "test requires docstrings")
-
 is_jython = sys.platform.startswith('java')
 
 # Filename used for testing
@@ -1599,6 +1595,16 @@
     _filter_suite(suite, case_pred)
     _run_suite(suite)
 
+#=======================================================================
+# Check for the presence of docstrings.
+
+HAVE_DOCSTRINGS = (check_impl_detail(cpython=False) or
+                   sys.platform == 'win32' or
+                   sysconfig.get_config_var('WITH_DOC_STRINGS'))
+
+requires_docstrings = unittest.skipUnless(HAVE_DOCSTRINGS,
+                                          "test requires docstrings")
+
 
 #=======================================================================
 # doctest driver.
diff -r 0cd5d215179a Lib/test/test_functools.py
--- a/Lib/test/test_functools.py        Sat Jan 26 13:58:00 2013 +0100
+++ b/Lib/test/test_functools.py        Sat Jan 26 16:59:39 2013 +0200
@@ -312,6 +312,7 @@
         with self.assertRaises(AttributeError):
             functools.update_wrapper(wrapper, f, assign, update)
 
+    @support.requires_docstrings
     @unittest.skipIf(sys.flags.optimize >= 2,
                      "Docstrings are omitted with -O2 and above")
     def test_builtin_update(self):
diff -r 0cd5d215179a Lib/test/test_pydoc.py
--- a/Lib/test/test_pydoc.py    Sat Jan 26 13:58:00 2013 +0100
+++ b/Lib/test/test_pydoc.py    Sat Jan 26 16:59:39 2013 +0200
@@ -14,6 +14,7 @@
 import textwrap
 from io import StringIO
 from collections import namedtuple
+import sysconfig
 from test.script_helper import assert_python_ok
 from test.support import (
     TESTFN, rmtree,
@@ -30,6 +31,14 @@
 if hasattr(pydoc_mod, "__loader__"):
     del pydoc_mod.__loader__
 
+if test.support.HAVE_DOCSTRINGS:
+    expected_data_docstrings = (
+        'dictionary for instance variables (if defined)',
+        'list of weak references to the object (if defined)',
+        ) * 2
+else:
+    expected_data_docstrings = ('', '', '', '')
+
 expected_text_pattern = """
 NAME
     test.pydoc_mod - This is a test module for test_pydoc
@@ -50,20 +59,16 @@
      |  ----------------------------------------------------------------------
      |  Data descriptors defined here:
      |\x20\x20
-     |  __dict__
-     |      dictionary for instance variables (if defined)
+     |  __dict__%s
      |\x20\x20
-     |  __weakref__
-     |      list of weak references to the object (if defined)
+     |  __weakref__%s
 \x20\x20\x20\x20
     class B(builtins.object)
      |  Data descriptors defined here:
      |\x20\x20
-     |  __dict__
-     |      dictionary for instance variables (if defined)
+     |  __dict__%s
      |\x20\x20
-     |  __weakref__
-     |      list of weak references to the object (if defined)
+     |  __weakref__%s
      |\x20\x20
      |  ----------------------------------------------------------------------
      |  Data and other attributes defined here:
@@ -95,6 +100,9 @@
     %s
 """.strip()
 
+expected_text_data_docstrings = tuple('\n     |      ' + s if s else ''
+                                      for s in expected_data_docstrings)
+
 expected_html_pattern = """
 <table width="100%%" cellspacing=0 cellpadding=2 border=0 summary="heading">
 <tr bgcolor="#7799ee">
@@ -134,10 +142,10 @@
 <hr>
 Data descriptors defined here:<br>
 <dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
+<dd><tt>%s</tt></dd>
 </dl>
 <dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
+<dd><tt>%s</tt></dd>
 </dl>
 </td></tr></table> <p>
 <table width="100%%" cellspacing=0 cellpadding=2 border=0 summary="section">
@@ -148,10 +156,10 @@
 <tr><td bgcolor="#ffc8d8"><tt>&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
 <td width="100%%">Data descriptors defined here:<br>
 <dl><dt><strong>__dict__</strong></dt>
-<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
+<dd><tt>%s</tt></dd>
 </dl>
 <dl><dt><strong>__weakref__</strong></dt>
-<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
+<dd><tt>%s</tt></dd>
 </dl>
 <hr>
 Data and other attributes defined here:<br>
@@ -193,6 +201,8 @@
 <td width="100%%">Nobody</td></tr></table>
 """.strip() # ' <- emacs turd
 
+expected_html_data_docstrings = tuple(s.replace(' ', '&nbsp;')
+                                      for s in expected_data_docstrings)
 
 # output pattern for missing module
 missing_pattern = "no Python documentation found for '%s'"
@@ -256,7 +266,6 @@
                      "Docstrings are omitted with -O2 and above")
     @unittest.skipIf(hasattr(sys, 'gettrace') and sys.gettrace(),
                      'trace function introduces __locals__ unexpectedly')
-    @test.support.requires_docstrings
     def test_html_doc(self):
         result, doc_loc = get_pydoc_html(pydoc_mod)
         mod_file = inspect.getabsfile(pydoc_mod)
@@ -265,7 +274,9 @@
             mod_url = nturl2path.pathname2url(mod_file)
         else:
             mod_url = mod_file
-        expected_html = expected_html_pattern % (mod_url, mod_file, doc_loc)
+        expected_html = expected_html_pattern % (
+                        (mod_url, mod_file, doc_loc) +
+                        expected_html_data_docstrings)
         if result != expected_html:
             print_diffs(expected_html, result)
             self.fail("outputs are not equal, see diff above")
@@ -274,11 +285,12 @@
                      "Docstrings are omitted with -O2 and above")
     @unittest.skipIf(hasattr(sys, 'gettrace') and sys.gettrace(),
                      'trace function introduces __locals__ unexpectedly')
-    @test.support.requires_docstrings
     def test_text_doc(self):
         result, doc_loc = get_pydoc_text(pydoc_mod)
-        expected_text = expected_text_pattern % \
-                        (doc_loc, inspect.getabsfile(pydoc_mod))
+        expected_text = expected_text_pattern % (
+                        (doc_loc,) +
+                        expected_text_data_docstrings +
+                        (inspect.getabsfile(pydoc_mod),))
         if result != expected_text:
             print_diffs(expected_text, result)
             self.fail("outputs are not equal, see diff above")
@@ -329,7 +341,6 @@
                      'Docstrings are omitted with -O2 and above')
     @unittest.skipIf(hasattr(sys, 'gettrace') and sys.gettrace(),
                      'trace function introduces __locals__ unexpectedly')
-    @test.support.requires_docstrings
     def test_help_output_redirect(self):
         # issue 940286, if output is set in Helper, then all output from
         # Helper.help should be redirected
@@ -355,8 +366,10 @@
                  captured_output('stderr') as err:
                 helper.help(module)
                 result = buf.getvalue().strip()
-                expected_text = expected_help_pattern % \
-                                (doc_loc, inspect.getabsfile(pydoc_mod))
+                expected_text = expected_help_pattern % (
+                                (doc_loc,) +
+                                expected_text_data_docstrings +
+                                (inspect.getabsfile(pydoc_mod),))
                 self.assertEqual('', output.getvalue())
                 self.assertEqual('', err.getvalue())
                 self.assertEqual(expected_text, result)
@@ -499,7 +512,6 @@
         self.assertRaises(TypeError, f, 'A', '')
         self.assertRaises(TypeError, f, 'B', 'foobar')
 
-    @test.support.requires_docstrings
     def test_url_requests(self):
         # Test for the correct title in the html pages returned.
         # This tests the different parts of the URL handler without
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to