Skip to content

Commit

Permalink
test/refactor: use pytest.fixture; add missing type hints 🧪
Browse files Browse the repository at this point in the history
  • Loading branch information
oldratlee committed Oct 31, 2023
1 parent 083bec7 commit e7f3336
Showing 1 changed file with 35 additions and 42 deletions.
77 changes: 35 additions & 42 deletions tests/test_lswin.py
Original file line number Diff line number Diff line change
@@ -1,26 +1,15 @@
import random
from typing import List

from lswin import Rect, WindowInfo, filter_window_infos, sorted_window_infos, window_infos_to_json

_mocked_win_list: List[WindowInfo] = [
WindowInfo(pid=101, win_id=13, rect=Rect(x=0, y=0, width=0, height=100),
title='title101', subtitle='subtitle13'),
WindowInfo(pid=101, win_id=11, rect=Rect(x=1, y=20, width=10, height=200),
title='title101', subtitle='subtitle11'),
WindowInfo(pid=101, win_id=12, rect=Rect(x=1, y=20, width=10, height=200),
title='title101', subtitle='subtitle11'),

WindowInfo(pid=202, win_id=21, rect=Rect(x=10, y=15, width=100, height=100),
title='title202', subtitle='subtitle21'),
]
from pytest import fixture

_shuffled_win_list = _mocked_win_list[:]
random.shuffle(_shuffled_win_list)
from lswin import Rect, WindowInfo, filter_window_infos, sorted_window_infos, window_infos_to_json


def test_filter_window_infos():
assert list(filter_window_infos(_mocked_win_list, exclude_0_area=True, keep_one_for_same_pid_rect=False)) == [
def _mocked_win_list() -> List[WindowInfo]:
return [
WindowInfo(pid=101, win_id=13, rect=Rect(x=0, y=0, width=0, height=100),
title='title101', subtitle='subtitle13'),
WindowInfo(pid=101, win_id=11, rect=Rect(x=1, y=20, width=10, height=200),
title='title101', subtitle='subtitle11'),
WindowInfo(pid=101, win_id=12, rect=Rect(x=1, y=20, width=10, height=200),
Expand All @@ -29,59 +18,63 @@ def test_filter_window_infos():
WindowInfo(pid=202, win_id=21, rect=Rect(x=10, y=15, width=100, height=100),
title='title202', subtitle='subtitle21'),
]
assert list(filter_window_infos(_mocked_win_list, exclude_0_area=False, keep_one_for_same_pid_rect=True)) == [
WindowInfo(pid=101, win_id=13, rect=Rect(x=0, y=0, width=0, height=100),
title='title101', subtitle='subtitle13'),
WindowInfo(pid=101, win_id=12, rect=Rect(x=1, y=20, width=10, height=200),
title='title101', subtitle='subtitle11'),

WindowInfo(pid=202, win_id=21, rect=Rect(x=10, y=15, width=100, height=100),
title='title202', subtitle='subtitle21'),
]
assert list(filter_window_infos(_mocked_win_list, exclude_0_area=True, keep_one_for_same_pid_rect=True)) == [
WindowInfo(pid=101, win_id=12, rect=Rect(x=1, y=20, width=10, height=200),
title='title101', subtitle='subtitle11'),

WindowInfo(pid=202, win_id=21, rect=Rect(x=10, y=15, width=100, height=100),
title='title202', subtitle='subtitle21'),
]
@fixture
def mocked_win_list() -> List[WindowInfo]:
return _mocked_win_list()


@fixture
def shuffled_win_list() -> List[WindowInfo]:
shuffled = _mocked_win_list()
random.shuffle(shuffled)
return shuffled


def test_sorted_window_infos():
assert list(sorted_window_infos(_shuffled_win_list, sort_keys=['pid', 'win_id'])) == [
def test_filter_window_infos(mocked_win_list: List[WindowInfo]) -> None:
assert list(filter_window_infos(mocked_win_list, exclude_0_area=True, keep_one_for_same_pid_rect=False)) == [
WindowInfo(pid=101, win_id=11, rect=Rect(x=1, y=20, width=10, height=200),
title='title101', subtitle='subtitle11'),
WindowInfo(pid=101, win_id=12, rect=Rect(x=1, y=20, width=10, height=200),
title='title101', subtitle='subtitle11'),
WindowInfo(pid=101, win_id=13, rect=Rect(x=0, y=0, width=0, height=100),
title='title101', subtitle='subtitle13'),

WindowInfo(pid=202, win_id=21, rect=Rect(x=10, y=15, width=100, height=100),
title='title202', subtitle='subtitle21'),
]
assert list(sorted_window_infos(_shuffled_win_list, sort_keys=['x', 'y'])) == [
assert list(filter_window_infos(mocked_win_list, exclude_0_area=False, keep_one_for_same_pid_rect=True)) == [
WindowInfo(pid=101, win_id=13, rect=Rect(x=0, y=0, width=0, height=100),
title='title101', subtitle='subtitle13'),
WindowInfo(pid=101, win_id=11, rect=Rect(x=1, y=20, width=10, height=200),
WindowInfo(pid=101, win_id=12, rect=Rect(x=1, y=20, width=10, height=200),
title='title101', subtitle='subtitle11'),

WindowInfo(pid=202, win_id=21, rect=Rect(x=10, y=15, width=100, height=100),
title='title202', subtitle='subtitle21'),
]
assert list(filter_window_infos(mocked_win_list, exclude_0_area=True, keep_one_for_same_pid_rect=True)) == [
WindowInfo(pid=101, win_id=12, rect=Rect(x=1, y=20, width=10, height=200),
title='title101', subtitle='subtitle11'),

WindowInfo(pid=202, win_id=21, rect=Rect(x=10, y=15, width=100, height=100),
title='title202', subtitle='subtitle21'),
]
assert list(sorted_window_infos(_shuffled_win_list, sort_keys=['width', 'height'])) == [
WindowInfo(pid=101, win_id=13, rect=Rect(x=0, y=0, width=0, height=100),
title='title101', subtitle='subtitle13'),


def test_sorted_window_infos(shuffled_win_list: List[WindowInfo], mocked_win_list: List[WindowInfo]) -> None:
assert list(sorted_window_infos(shuffled_win_list, sort_keys=['pid', 'win_id'])) == [
WindowInfo(pid=101, win_id=11, rect=Rect(x=1, y=20, width=10, height=200),
title='title101', subtitle='subtitle11'),
WindowInfo(pid=101, win_id=12, rect=Rect(x=1, y=20, width=10, height=200),
title='title101', subtitle='subtitle11'),
WindowInfo(pid=101, win_id=13, rect=Rect(x=0, y=0, width=0, height=100),
title='title101', subtitle='subtitle13'),

WindowInfo(pid=202, win_id=21, rect=Rect(x=10, y=15, width=100, height=100),
title='title202', subtitle='subtitle21'),
]
assert list(sorted_window_infos(_shuffled_win_list, sort_keys=['title', 'subtitle'])) == [
assert list(sorted_window_infos(shuffled_win_list, sort_keys=['x', 'y'])) == mocked_win_list
assert list(sorted_window_infos(shuffled_win_list, sort_keys=['width', 'height'])) == mocked_win_list
assert list(sorted_window_infos(shuffled_win_list, sort_keys=['title', 'subtitle'])) == [
WindowInfo(pid=101, win_id=11, rect=Rect(x=1, y=20, width=10, height=200),
title='title101', subtitle='subtitle11'),
WindowInfo(pid=101, win_id=12, rect=Rect(x=1, y=20, width=10, height=200),
Expand All @@ -94,7 +87,7 @@ def test_sorted_window_infos():
]


def test_window_infos_to_json():
def test_window_infos_to_json() -> None:
assert window_infos_to_json([
WindowInfo(pid=101, win_id=11, rect=Rect(x=1, y=20, width=10, height=200),
title='title101', subtitle='subtitle11'),
Expand Down

0 comments on commit e7f3336

Please sign in to comment.