From 9dccccaf68924a89f5d01d2a76a671a5dc7f3918 Mon Sep 17 00:00:00 2001 From: Anthony Sottile Date: Fri, 13 Dec 2019 12:17:06 -0800 Subject: [PATCH 1/2] Fix mypy pretty output within a pty --- mypy/test/testutil.py | 12 ++++++++++++ mypy/util.py | 5 ++++- 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 mypy/test/testutil.py diff --git a/mypy/test/testutil.py b/mypy/test/testutil.py new file mode 100644 index 000000000000..6bfd364546bb --- /dev/null +++ b/mypy/test/testutil.py @@ -0,0 +1,12 @@ +import os +from unittest import mock, TestCase + +from mypy.util import get_terminal_width + + +class TestGetTerminalSize(TestCase): + def test_get_terminal_size_in_pty_defaults_to_80(self) -> None: + # when run using a pty, `os.get_terminal_size()` returns `0, 0` + ret = os.terminal_size((0, 0)) + with mock.patch.object(os, 'get_terminal_size', return_value=ret): + assert get_terminal_width() == 80 diff --git a/mypy/util.py b/mypy/util.py index 8f9448bcff4c..84859fa94e70 100644 --- a/mypy/util.py +++ b/mypy/util.py @@ -424,9 +424,12 @@ def get_terminal_width() -> int: """Get current terminal width if possible, otherwise return the default one.""" try: cols, _ = os.get_terminal_size() - return cols except OSError: return DEFAULT_COLUMNS + else: + if cols == 0: + return DEFAULT_COLUMNS + return cols def soft_wrap(msg: str, max_len: int, first_offset: int, From 86498c0b7b7a83bb854e76a11dbf2e521c398e59 Mon Sep 17 00:00:00 2001 From: Anthony Sottile Date: Fri, 13 Dec 2019 13:14:58 -0800 Subject: [PATCH 2/2] git rm mypy/test/testutil.py --- mypy/test/testutil.py | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 mypy/test/testutil.py diff --git a/mypy/test/testutil.py b/mypy/test/testutil.py deleted file mode 100644 index 6bfd364546bb..000000000000 --- a/mypy/test/testutil.py +++ /dev/null @@ -1,12 +0,0 @@ -import os -from unittest import mock, TestCase - -from mypy.util import get_terminal_width - - -class TestGetTerminalSize(TestCase): - def test_get_terminal_size_in_pty_defaults_to_80(self) -> None: - # when run using a pty, `os.get_terminal_size()` returns `0, 0` - ret = os.terminal_size((0, 0)) - with mock.patch.object(os, 'get_terminal_size', return_value=ret): - assert get_terminal_width() == 80