Archived
63 lines
2.1 KiB
Python
63 lines
2.1 KiB
Python
from __future__ import annotations
|
|
|
|
import sys
|
|
import types
|
|
import unittest
|
|
from pathlib import Path
|
|
|
|
|
|
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src"))
|
|
|
|
dearpygui = types.ModuleType("dearpygui")
|
|
dearpygui_dearpygui = types.ModuleType("dearpygui.dearpygui")
|
|
sys.modules.setdefault("dearpygui", dearpygui)
|
|
sys.modules.setdefault("dearpygui.dearpygui", dearpygui_dearpygui)
|
|
sys.modules.setdefault("dpg_gauges", types.ModuleType("dpg_gauges"))
|
|
|
|
from dynalab.ui import windows
|
|
|
|
|
|
class LoadingLayoutTests(unittest.TestCase):
|
|
def test_center_loading_content_positions_logo_and_bottom_text(self) -> None:
|
|
calls: list[tuple[str, str, object]] = []
|
|
|
|
windows.dpg.does_item_exist = lambda tag: tag == "loading_window"
|
|
windows.dpg.get_viewport_client_width = lambda: 600
|
|
windows.dpg.get_viewport_client_height = lambda: 400
|
|
windows.dpg.set_item_width = lambda tag, width: calls.append(
|
|
("width", tag, width)
|
|
)
|
|
windows.dpg.set_item_height = lambda tag, height: calls.append(
|
|
("height", tag, height)
|
|
)
|
|
windows.dpg.set_item_pos = lambda tag, pos: calls.append(("pos", tag, pos))
|
|
windows.dpg.get_item_rect_size = lambda tag: {
|
|
"loading_logo": (300, 100),
|
|
"loading_text": (100, 20),
|
|
}[tag]
|
|
|
|
windows.center_loading_content()
|
|
|
|
self.assertIn(("pos", "loading_logo_group", [150, 150]), calls)
|
|
self.assertIn(("pos", "loading_text_row", [0, 356]), calls)
|
|
self.assertIn(("width", "loading_text_left_spacer", 250), calls)
|
|
self.assertNotIn(
|
|
"loading_text",
|
|
[tag for call_type, tag, _ in calls if call_type == "pos"],
|
|
)
|
|
|
|
def test_loading_layout_handles_text_wider_than_logo(self) -> None:
|
|
logo_pos, text_row_pos, text_spacer_width = windows._loading_content_layout(
|
|
viewport_size=(600, 400),
|
|
logo_size=(120, 50),
|
|
text_size=(200, 20),
|
|
)
|
|
|
|
self.assertEqual(logo_pos, [240, 175])
|
|
self.assertEqual(text_row_pos, [0, 356])
|
|
self.assertEqual(text_spacer_width, 200)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|