mirror of https://github.com/python/cpython
Issue #19330: Handle the no-docstrings case in tests
This commit is contained in:
parent
40820f8fba
commit
561eb5cbe4
|
@ -1697,9 +1697,13 @@ def run_unittest(*classes):
|
||||||
#=======================================================================
|
#=======================================================================
|
||||||
# Check for the presence of docstrings.
|
# Check for the presence of docstrings.
|
||||||
|
|
||||||
HAVE_DOCSTRINGS = (check_impl_detail(cpython=False) or
|
# Rather than trying to enumerate all the cases where docstrings may be
|
||||||
sys.platform == 'win32' or
|
# disabled, we just check for that directly
|
||||||
sysconfig.get_config_var('WITH_DOC_STRINGS'))
|
|
||||||
|
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,
|
requires_docstrings = unittest.skipUnless(HAVE_DOCSTRINGS,
|
||||||
"test requires docstrings")
|
"test requires docstrings")
|
||||||
|
|
|
@ -14,20 +14,6 @@ except ImportError:
|
||||||
|
|
||||||
class ContextManagerTestCase(unittest.TestCase):
|
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):
|
def test_contextmanager_plain(self):
|
||||||
state = []
|
state = []
|
||||||
@contextmanager
|
@contextmanager
|
||||||
|
@ -115,14 +101,20 @@ class ContextManagerTestCase(unittest.TestCase):
|
||||||
self.assertEqual(baz.__name__,'baz')
|
self.assertEqual(baz.__name__,'baz')
|
||||||
self.assertEqual(baz.foo, 'bar')
|
self.assertEqual(baz.foo, 'bar')
|
||||||
|
|
||||||
@unittest.skipIf(sys.flags.optimize >= 2,
|
@support.requires_docstrings
|
||||||
"Docstrings are omitted with -O2 and above")
|
|
||||||
def test_contextmanager_doc_attrib(self):
|
def test_contextmanager_doc_attrib(self):
|
||||||
baz = self._create_contextmanager_attribs()
|
baz = self._create_contextmanager_attribs()
|
||||||
self.assertEqual(baz.__doc__, "Whee!")
|
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):
|
class ClosingTestCase(unittest.TestCase):
|
||||||
|
|
||||||
|
@support.requires_docstrings
|
||||||
def test_instance_docs(self):
|
def test_instance_docs(self):
|
||||||
# Issue 19330: ensure context manager instances have good docstrings
|
# Issue 19330: ensure context manager instances have good docstrings
|
||||||
cm_docstring = closing.__doc__
|
cm_docstring = closing.__doc__
|
||||||
|
@ -239,6 +231,7 @@ class mycontext(ContextDecorator):
|
||||||
|
|
||||||
class TestContextDecorator(unittest.TestCase):
|
class TestContextDecorator(unittest.TestCase):
|
||||||
|
|
||||||
|
@support.requires_docstrings
|
||||||
def test_instance_docs(self):
|
def test_instance_docs(self):
|
||||||
# Issue 19330: ensure context manager instances have good docstrings
|
# Issue 19330: ensure context manager instances have good docstrings
|
||||||
cm_docstring = mycontext.__doc__
|
cm_docstring = mycontext.__doc__
|
||||||
|
@ -398,6 +391,7 @@ class TestContextDecorator(unittest.TestCase):
|
||||||
|
|
||||||
class TestExitStack(unittest.TestCase):
|
class TestExitStack(unittest.TestCase):
|
||||||
|
|
||||||
|
@support.requires_docstrings
|
||||||
def test_instance_docs(self):
|
def test_instance_docs(self):
|
||||||
# Issue 19330: ensure context manager instances have good docstrings
|
# Issue 19330: ensure context manager instances have good docstrings
|
||||||
cm_docstring = ExitStack.__doc__
|
cm_docstring = ExitStack.__doc__
|
||||||
|
@ -665,6 +659,7 @@ class TestExitStack(unittest.TestCase):
|
||||||
|
|
||||||
class TestRedirectStdout(unittest.TestCase):
|
class TestRedirectStdout(unittest.TestCase):
|
||||||
|
|
||||||
|
@support.requires_docstrings
|
||||||
def test_instance_docs(self):
|
def test_instance_docs(self):
|
||||||
# Issue 19330: ensure context manager instances have good docstrings
|
# Issue 19330: ensure context manager instances have good docstrings
|
||||||
cm_docstring = redirect_stdout.__doc__
|
cm_docstring = redirect_stdout.__doc__
|
||||||
|
@ -708,6 +703,7 @@ class TestRedirectStdout(unittest.TestCase):
|
||||||
|
|
||||||
class TestSuppress(unittest.TestCase):
|
class TestSuppress(unittest.TestCase):
|
||||||
|
|
||||||
|
@support.requires_docstrings
|
||||||
def test_instance_docs(self):
|
def test_instance_docs(self):
|
||||||
# Issue 19330: ensure context manager instances have good docstrings
|
# Issue 19330: ensure context manager instances have good docstrings
|
||||||
cm_docstring = suppress.__doc__
|
cm_docstring = suppress.__doc__
|
||||||
|
|
Loading…
Reference in New Issue