diff options
author | Benjamin Peterson <benjamin@python.org> | 2014-06-08 03:14:26 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2014-06-08 03:14:26 (GMT) |
commit | 159824ea2a1872dadef69a229fb294c571d2ac73 (patch) | |
tree | 6796bae35982004fb1932a2f93bd97a36fdfcccd | |
parent | 96e0430dfb36c5fa336684601bf271b0ce43e367 (diff) | |
download | cpython-159824ea2a1872dadef69a229fb294c571d2ac73.zip cpython-159824ea2a1872dadef69a229fb294c571d2ac73.tar.gz cpython-159824ea2a1872dadef69a229fb294c571d2ac73.tar.bz2 |
make sure the builtin help function doesn't fail when sys.stdin is not a valid file (closes #11709)
Original patch by Amaury Forgeot d'Arc with a test by bdettmer.
-rwxr-xr-x | Lib/pydoc.py | 2 | ||||
-rw-r--r-- | Lib/test/test_pydoc.py | 8 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
3 files changed, 13 insertions, 0 deletions
diff --git a/Lib/pydoc.py b/Lib/pydoc.py index 2dee6ee..cc43684 100755 --- a/Lib/pydoc.py +++ b/Lib/pydoc.py @@ -1417,6 +1417,8 @@ def pager(text): def getpager(): """Decide what method to use for paging through text.""" + if not hasattr(sys.stdin, "isatty"): + return plainpager if not hasattr(sys.stdout, "isatty"): return plainpager if not sys.stdin.isatty() or not sys.stdout.isatty(): diff --git a/Lib/test/test_pydoc.py b/Lib/test/test_pydoc.py index 188c4c2..542b433 100644 --- a/Lib/test/test_pydoc.py +++ b/Lib/test/test_pydoc.py @@ -446,6 +446,14 @@ class PydocDocTest(unittest.TestCase): result, doc_loc = get_pydoc_text(xml.etree) self.assertEqual(doc_loc, "", "MODULE DOCS incorrectly includes a link") + def test_getpager_with_stdin_none(self): + previous_stdin = sys.stdin + try: + sys.stdin = None + pydoc.getpager() # Shouldn't fail. + finally: + sys.stdin = previous_stdin + def test_non_str_name(self): # issue14638 # Treat illegal (non-str) name like no name @@ -22,6 +22,9 @@ Core and Builtins Library ------- +- Issue #11709: Fix the pydoc.help function to not fail when sys.stdin is not a + valid file. + - Issue #13223: Fix pydoc.writedoc so that the HTML documentation for methods that use 'self' in the example code is generated correctly. |