summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
authorNick Coghlan <ncoghlan@gmail.com>2013-10-26 12:20:43 (GMT)
committerNick Coghlan <ncoghlan@gmail.com>2013-10-26 12:20:43 (GMT)
commit561eb5cbe4179c39d72855b4c91171be94787380 (patch)
tree657a3ffe38a731ff5dbf5f6ffeb6d984193bbbd2 /Lib/test
parent40820f8fbaa3e889ad4f95f6417b0c5a9e3099d6 (diff)
downloadcpython-561eb5cbe4179c39d72855b4c91171be94787380.zip
cpython-561eb5cbe4179c39d72855b4c91171be94787380.tar.gz
cpython-561eb5cbe4179c39d72855b4c91171be94787380.tar.bz2
Issue #19330: Handle the no-docstrings case in tests
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/support/__init__.py10
-rw-r--r--Lib/test/test_contextlib.py28
2 files changed, 19 insertions, 19 deletions
diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py
index d4f7566..1b20fa7 100644
--- a/Lib/test/support/__init__.py
+++ b/Lib/test/support/__init__.py
@@ -1697,9 +1697,13 @@ def run_unittest(*classes):
#=======================================================================
# 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'))
+# Rather than trying to enumerate all the cases where docstrings may be
+# disabled, we just check for that directly
+
+def _check_docstrings():
+ """Just used to check if docstrings are enabled"""
+
+HAVE_DOCSTRINGS = (_check_docstrings.__doc__ is not None)
requires_docstrings = unittest.skipUnless(HAVE_DOCSTRINGS,
"test requires docstrings")
diff --git a/Lib/test/test_contextlib.py b/Lib/test/test_contextlib.py
index 6362a97..916ac80 100644
--- a/Lib/test/test_contextlib.py
+++ b/Lib/test/test_contextlib.py
@@ -14,20 +14,6 @@ except ImportError:
class ContextManagerTestCase(unittest.TestCase):
- def test_instance_docstring_given_function_docstring(self):
- # Issue 19330: ensure context manager instances have good docstrings
- # See http://bugs.python.org/issue19404 for why this doesn't currently
- # affect help() output :(
- def gen_with_docstring():
- """This has a docstring"""
- yield
- gen_docstring = gen_with_docstring.__doc__
- cm_with_docstring = contextmanager(gen_with_docstring)
- self.assertEqual(cm_with_docstring.__doc__, gen_docstring)
- obj = cm_with_docstring()
- self.assertEqual(obj.__doc__, gen_docstring)
- self.assertNotEqual(obj.__doc__, type(obj).__doc__)
-
def test_contextmanager_plain(self):
state = []
@contextmanager
@@ -115,14 +101,20 @@ class ContextManagerTestCase(unittest.TestCase):
self.assertEqual(baz.__name__,'baz')
self.assertEqual(baz.foo, 'bar')
- @unittest.skipIf(sys.flags.optimize >= 2,
- "Docstrings are omitted with -O2 and above")
+ @support.requires_docstrings
def test_contextmanager_doc_attrib(self):
baz = self._create_contextmanager_attribs()
self.assertEqual(baz.__doc__, "Whee!")
+ @support.requires_docstrings
+ def test_instance_docstring_given_cm_docstring(self):
+ baz = self._create_contextmanager_attribs()(None)
+ self.assertEqual(baz.__doc__, "Whee!")
+
+
class ClosingTestCase(unittest.TestCase):
+ @support.requires_docstrings
def test_instance_docs(self):
# Issue 19330: ensure context manager instances have good docstrings
cm_docstring = closing.__doc__
@@ -239,6 +231,7 @@ class mycontext(ContextDecorator):
class TestContextDecorator(unittest.TestCase):
+ @support.requires_docstrings
def test_instance_docs(self):
# Issue 19330: ensure context manager instances have good docstrings
cm_docstring = mycontext.__doc__
@@ -398,6 +391,7 @@ class TestContextDecorator(unittest.TestCase):
class TestExitStack(unittest.TestCase):
+ @support.requires_docstrings
def test_instance_docs(self):
# Issue 19330: ensure context manager instances have good docstrings
cm_docstring = ExitStack.__doc__
@@ -665,6 +659,7 @@ class TestExitStack(unittest.TestCase):
class TestRedirectStdout(unittest.TestCase):
+ @support.requires_docstrings
def test_instance_docs(self):
# Issue 19330: ensure context manager instances have good docstrings
cm_docstring = redirect_stdout.__doc__
@@ -708,6 +703,7 @@ class TestRedirectStdout(unittest.TestCase):
class TestSuppress(unittest.TestCase):
+ @support.requires_docstrings
def test_instance_docs(self):
# Issue 19330: ensure context manager instances have good docstrings
cm_docstring = suppress.__doc__