mirror of
https://github.com/python/cpython.git
synced 2024-11-24 18:34:43 +08:00
Fix shutil.get_terminal_size() error handling
Issue #26801: Fix error handling in shutil.get_terminal_size(), catch AttributeError instead of NameError. Patch written by Emanuel Barry. test_shutil: skip the functional test using "stty size" command if os.get_terminal_size() is missing.
This commit is contained in:
parent
ded4c4967b
commit
119ebb70e9
@ -1069,7 +1069,7 @@ def get_terminal_size(fallback=(80, 24)):
|
||||
if columns <= 0 or lines <= 0:
|
||||
try:
|
||||
size = os.get_terminal_size(sys.__stdout__.fileno())
|
||||
except (NameError, OSError):
|
||||
except (AttributeError, OSError):
|
||||
size = os.terminal_size(fallback)
|
||||
if columns <= 0:
|
||||
columns = size.columns
|
||||
|
@ -1837,6 +1837,8 @@ class TermsizeTests(unittest.TestCase):
|
||||
self.assertEqual(size.lines, 888)
|
||||
|
||||
@unittest.skipUnless(os.isatty(sys.__stdout__.fileno()), "not on tty")
|
||||
@unittest.skipUnless(hasattr(os, 'get_terminal_size'),
|
||||
'need os.get_terminal_size()')
|
||||
def test_stty_match(self):
|
||||
"""Check if stty returns the same results ignoring env
|
||||
|
||||
|
@ -90,6 +90,7 @@ Matthew Barnett
|
||||
Richard Barran
|
||||
Cesar Eduardo Barros
|
||||
Des Barry
|
||||
Emanuel Barry
|
||||
Ulf Bartelt
|
||||
Campbell Barton
|
||||
Don Bashford
|
||||
|
@ -107,6 +107,10 @@ Core and Builtins
|
||||
Library
|
||||
-------
|
||||
|
||||
- Issue #26801: Fix error handling in :func:`shutil.get_terminal_size`, catch
|
||||
:exc:`AttributeError` instead of :exc:`NameError`. Patch written by Emanuel
|
||||
Barry.
|
||||
|
||||
- Issue #24838: tarfile's ustar and gnu formats now correctly calculate name
|
||||
and link field limits for multibyte character encodings like utf-8.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user