Skip to content

Commit

Permalink
test: Complete tests for top level definitions
Browse files Browse the repository at this point in the history
- Add: Missing tests for top level definitions.
- Change: Rename make target for top level tests.
  • Loading branch information
AnonymouX47 committed Jul 2, 2024
1 parent 01315d0 commit 9c0f857
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 4 deletions.
6 changes: 3 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ pytest := pytest -v -r a

## Filepath variables

test-top := tests/test_top_level.py
test-top-level := tests/test_top_level.py
test-color := tests/test_color.py
test-geometry := tests/test_geometry.py
test-padding := tests/test_padding.py
Expand All @@ -99,12 +99,12 @@ test-graphics := $(test-kitty) $(test-iterm2)
test-image := $(test-base) $(test-text) $(test-graphics) $(test-others)
test-widget-urwid := $(test-widget-urwid-main) $(test-widget-urwid-screen)
test-widget := $(test-widget-urwid)
test := $(test-top) $(test-color) $(test-geometry) $(test-padding) $(test-renderable) $(test-render) $(test-image) $(test-iterator) $(test-widget)
test := $(test-top-level) $(test-color) $(test-geometry) $(test-padding) $(test-renderable) $(test-render) $(test-image) $(test-iterator) $(test-widget)
test-all := $(test) $(test-url)

## Targets

test-top \
test-top-level \
test-color \
test-geometry \
test-padding \
Expand Down
2 changes: 2 additions & 0 deletions tests/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,13 +66,15 @@ def toggle_is_on_kitty():

terminal_name_version = ("", "")
term_image.utils.get_terminal_name_version = get_terminal_name_version
term_image.utils.get_terminal_name_version._invalidate_cache = lambda: None

cell_size = None
term_image.get_cell_size = get_cell_size
term_image.utils.get_cell_size = get_cell_size

fg_bg = [(0, 0, 0), (0, 0, 0)]
term_image.utils.get_fg_bg_colors = get_fg_bg_colors
term_image.utils.get_fg_bg_colors._invalidate_cache = lambda: None

import term_image.image # noqa: E402

Expand Down
61 changes: 60 additions & 1 deletion tests/test_top_level.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,17 @@

import pytest

from term_image import AutoCellRatio, get_cell_ratio, set_cell_ratio
from term_image import (
AutoCellRatio,
disable_queries,
disable_win_size_swap,
enable_queries,
enable_win_size_swap,
get_cell_ratio,
set_cell_ratio,
set_query_timeout,
utils,
)
from term_image.exceptions import TermImageError
from term_image.geometry import Size

Expand Down Expand Up @@ -59,3 +69,52 @@ def test_dynamic(self):
# Back to normal when cell size can be determined
set_cell_size(Size(5, 5))
assert get_cell_ratio() == 5 / 5 == get_cell_ratio()


def test_disable_queries():
utils._queries_enabled = True

disable_queries()
assert not utils._queries_enabled


@pytest.mark.parametrize("was_enabled", [True, False])
def test_disable_win_size_swap(was_enabled):
utils._swap_win_size = was_enabled
utils._cell_size_cache[:] = (1, 2, 3, 4)

disable_win_size_swap()
assert not utils._swap_win_size
assert utils._cell_size_cache == [0, 0, 0, 0] if was_enabled else [1, 2, 3, 4]


@pytest.mark.parametrize("was_enabled", [True, False])
def test_enable_queries(was_enabled):
utils._queries_enabled = was_enabled
utils._cell_size_cache[:] = (1, 2, 3, 4)

enable_queries()
assert utils._queries_enabled
assert utils._cell_size_cache == [1, 2, 3, 4] if was_enabled else [0, 0, 0, 0]


@pytest.mark.parametrize("was_enabled", [True, False])
def test_enable_win_size_swap(was_enabled):
utils._swap_win_size = was_enabled
utils._cell_size_cache[:] = (1, 2, 3, 4)

enable_win_size_swap()
assert utils._swap_win_size
assert utils._cell_size_cache == [1, 2, 3, 4] if was_enabled else [0, 0, 0, 0]


class TestSetQueryTimeout:
@pytest.mark.parametrize("timeout", [-1.0, -0.1, 0.0])
def test_invalid(self, timeout):
with pytest.raises(ValueError):
set_query_timeout(timeout)

@pytest.mark.parametrize("timeout", [0.1, 0.5, 1.0, 10.0])
def test_valid(self, timeout):
set_query_timeout(timeout)
assert utils._query_timeout == timeout

0 comments on commit 9c0f857

Please sign in to comment.