diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2022-09-16 09:09:35 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2022-09-16 09:09:35 +0000 |
commit | 0dfe1c9e2780469e3a4696e8fb3e6f717a7ebeb7 (patch) | |
tree | a0b651b55ea02e3b00bbc5eedba566fdd6bd7c08 /tests/test_terminal_io/test_terminal_size.py | |
parent | Initial commit. (diff) | |
download | terminaltables-0dfe1c9e2780469e3a4696e8fb3e6f717a7ebeb7.tar.xz terminaltables-0dfe1c9e2780469e3a4696e8fb3e6f717a7ebeb7.zip |
Adding upstream version 3.1.0.upstream/3.1.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/test_terminal_io/test_terminal_size.py')
-rw-r--r-- | tests/test_terminal_io/test_terminal_size.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/test_terminal_io/test_terminal_size.py b/tests/test_terminal_io/test_terminal_size.py new file mode 100644 index 0000000..ba14d18 --- /dev/null +++ b/tests/test_terminal_io/test_terminal_size.py @@ -0,0 +1,54 @@ +# coding: utf-8 +"""Test function in module.""" + +import pytest + +from terminaltables.terminal_io import DEFAULT_HEIGHT, DEFAULT_WIDTH, INVALID_HANDLE_VALUE, IS_WINDOWS, terminal_size + +from tests.test_terminal_io import MockKernel32 + + +@pytest.mark.parametrize('stderr', [1, INVALID_HANDLE_VALUE]) +@pytest.mark.parametrize('stdout', [2, INVALID_HANDLE_VALUE]) +def test_windows(monkeypatch, stderr, stdout): + """Test function with IS_WINDOWS=True. + + :param monkeypatch: pytest fixture. + :param int stderr: Mock handle value. + :param int stdout: Mock handle value. + """ + monkeypatch.setattr('terminaltables.terminal_io.IS_WINDOWS', True) + + kernel32 = MockKernel32(stderr=stderr, stdout=stdout) + width, height = terminal_size(kernel32) + + if stderr == INVALID_HANDLE_VALUE and stdout == INVALID_HANDLE_VALUE: + assert width == DEFAULT_WIDTH + assert height == DEFAULT_HEIGHT + elif stdout == INVALID_HANDLE_VALUE: + assert width == 119 + assert height == 29 + elif stderr == INVALID_HANDLE_VALUE: + assert width == 75 + assert height == 28 + else: + assert width == 119 + assert height == 29 + + +@pytest.mark.skipif(str(IS_WINDOWS)) +def test_nix(monkeypatch): + """Test function with IS_WINDOWS=False. + + :param monkeypatch: pytest fixture. + """ + # Test exception (no terminal within pytest). + width, height = terminal_size() + assert width == DEFAULT_WIDTH + assert height == DEFAULT_HEIGHT + + # Test mocked. + monkeypatch.setattr('fcntl.ioctl', lambda *_: b'\x1d\x00w\x00\xca\x02\x96\x01') + width, height = terminal_size() + assert width == 119 + assert height == 29 |