Mercurial > cpython-lru_cache-weakref
changeset 86656:a9bbc2d0c1dc
Issue #19330: Handle the no-docstrings case in tests
| author | Nick Coghlan <ncoghlan@gmail.com> |
|---|---|
| date | Sat, 26 Oct 2013 22:20:43 +1000 |
| parents | 64fb6a58ebf4 |
| children | 0c0cbba64b7b |
| files | Lib/test/support/__init__.py Lib/test/test_contextlib.py |
| diffstat | 2 files changed, 19 insertions(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- a/Lib/test/support/__init__.py Sat Oct 26 03:27:24 2013 -0700 +++ b/Lib/test/support/__init__.py Sat Oct 26 22:20:43 2013 +1000 @@ -1697,9 +1697,13 @@ #======================================================================= # 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")
--- a/Lib/test/test_contextlib.py Sat Oct 26 03:27:24 2013 -0700 +++ b/Lib/test/test_contextlib.py Sat Oct 26 22:20:43 2013 +1000 @@ -14,20 +14,6 @@ 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 @@ 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 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 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 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 TestSuppress(unittest.TestCase): + @support.requires_docstrings def test_instance_docs(self): # Issue 19330: ensure context manager instances have good docstrings cm_docstring = suppress.__doc__
