summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorBerker Peksag <berker.peksag@gmail.com>2018-07-25 15:23:44 (GMT)
committerGitHub <noreply@github.com>2018-07-25 15:23:44 (GMT)
commit74102c9a5f2327c4fc47feefa072854a53551d1f (patch)
treebc6ef255acbe46650c753977363c7c7c5e9d5c73 /Lib
parentc0f0a7669c73c0d444851dd4c5299de2479214cc (diff)
downloadcpython-74102c9a5f2327c4fc47feefa072854a53551d1f.zip
cpython-74102c9a5f2327c4fc47feefa072854a53551d1f.tar.gz
cpython-74102c9a5f2327c4fc47feefa072854a53551d1f.tar.bz2
bpo-13041: Use shutil.get_terminal_size() in argparse.HelpFormatter (GH-8459)
Diffstat (limited to 'Lib')
-rw-r--r--Lib/argparse.py6
-rw-r--r--Lib/test/test_argparse.py5
2 files changed, 5 insertions, 6 deletions
diff --git a/Lib/argparse.py b/Lib/argparse.py
index a030749..83f47e3 100644
--- a/Lib/argparse.py
+++ b/Lib/argparse.py
@@ -85,6 +85,7 @@ __all__ = [
import os as _os
import re as _re
+import shutil as _shutil
import sys as _sys
from gettext import gettext as _, ngettext
@@ -164,10 +165,7 @@ class HelpFormatter(object):
# default setting for width
if width is None:
- try:
- width = int(_os.environ['COLUMNS'])
- except (KeyError, ValueError):
- width = 80
+ width = _shutil.get_terminal_size().columns
width -= 2
self._prog = prog
diff --git a/Lib/test/test_argparse.py b/Lib/test/test_argparse.py
index 85449c7..f0802a5 100644
--- a/Lib/test/test_argparse.py
+++ b/Lib/test/test_argparse.py
@@ -23,9 +23,9 @@ class TestCase(unittest.TestCase):
def setUp(self):
# The tests assume that line wrapping occurs at 80 columns, but this
# behaviour can be overridden by setting the COLUMNS environment
- # variable. To ensure that this assumption is true, unset COLUMNS.
+ # variable. To ensure that this width is used, set COLUMNS to 80.
env = support.EnvironmentVarGuard()
- env.unset("COLUMNS")
+ env['COLUMNS'] = '80'
self.addCleanup(env.__exit__)
@@ -5122,6 +5122,7 @@ class TestImportStar(TestCase):
class TestWrappingMetavar(TestCase):
def setUp(self):
+ super().setUp()
self.parser = ErrorRaisingArgumentParser(
'this_is_spammy_prog_with_a_long_name_sorry_about_the_name'
)