[Python-checkins] cpython (2.7): make sure the builtin help function doesn't fail when sys.stdin is not a valid

benjamin.peterson python-checkins at python.org
Sun Jun 8 05:17:45 CEST 2014


http://hg.python.org/cpython/rev/1a9c07880a15
changeset: 91081:1a9c07880a15
branch: 2.7
parent: 91078:a0be81607a50
user: Benjamin Peterson <benjamin at python.org>
date: Sat Jun 07 20:14:26 2014 -0700
summary:
 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.
files:
 Lib/pydoc.py | 2 ++
 Lib/test/test_pydoc.py | 8 ++++++++
 Misc/NEWS | 3 +++
 3 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/Lib/pydoc.py b/Lib/pydoc.py
--- a/Lib/pydoc.py
+++ b/Lib/pydoc.py
@@ -1377,6 +1377,8 @@
 """Decide what method to use for paging through text."""
 if type(sys.stdout) is not types.FileType:
 return plainpager
+ if not hasattr(sys.stdin, "isatty"):
+ return plainpager
 if not sys.stdin.isatty() or not sys.stdout.isatty():
 return plainpager
 if 'PAGER' in os.environ:
diff --git a/Lib/test/test_pydoc.py b/Lib/test/test_pydoc.py
--- a/Lib/test/test_pydoc.py
+++ b/Lib/test/test_pydoc.py
@@ -333,6 +333,14 @@
 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
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -28,6 +28,9 @@
 - Issue #21304: Backport the key derivation function hashlib.pbkdf2_hmac from
 Python 3 per PEP 466.
 
+- 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.
 
-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /