diff options
author | Nick Coghlan <ncoghlan@gmail.com> | 2013-10-26 12:20:43 (GMT) |
---|---|---|
committer | Nick Coghlan <ncoghlan@gmail.com> | 2013-10-26 12:20:43 (GMT) |
commit | 561eb5cbe4179c39d72855b4c91171be94787380 (patch) | |
tree | 657a3ffe38a731ff5dbf5f6ffeb6d984193bbbd2 /Lib/test | |
parent | 40820f8fbaa3e889ad4f95f6417b0c5a9e3099d6 (diff) | |
download | cpython-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__.py | 10 | ||||
-rw-r--r-- | Lib/test/test_contextlib.py | 28 |
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__ |