import sys from pathlib import Path sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) import unittest import deckit.modules.windows as windows class Commands(unittest.TestCase): def test_lua_and_classic(self): self.assertEqual(windows.workspace_cmd(3, lua=False), ["hyprctl", "dispatch", "workspace", "3"]) self.assertEqual(windows.workspace_cmd(3, lua=True)[:2], ["hyprctl", "eval"]) def test_address_guard(self): self.assertIsNone(windows.ADDR.fullmatch("0x1;rm")) self.assertTrue(windows.ADDR.fullmatch("0x55897e5c0800")) def test_state_lists_all_workspaces(self): responses = { ("hyprctl", "clients", "-j"): "[]", ("hyprctl", "activewindow", "-j"): "{}", ("hyprctl", "monitors", "-j"): "[]", ("hyprctl", "workspaces", "-j"): '[{"id": 1}, {"id": 2}, {"id": 5}]', } st = windows._state(lambda cmd: responses[tuple(cmd)]) self.assertEqual(st["workspaces"], [1, 2, 5]) if __name__ == "__main__": unittest.main()