Grotti 3.3.0: Projekte mit Ordner, Datei-Löschen/Verschieben, Material-Archiv, UI-Polish.

This commit is contained in:
Dominic Gundel committed 2026-10-18 20:10:32 +02:00
1 parent 4ddffbbeb1
commit 67a89d1794
45 files changed
+2856 -320

No files matched your search

+84
View File
@@ -23,6 +23,90 @@ class OrcaSendenHelpersTest(unittest.TestCase):
"http://127.0.0.1:8770/dateien?file=42",
)
def test_app_page_url(self):
self.assertEqual(
orca.app_page_url("http://127.0.0.1:8770/"),
"http://127.0.0.1:8770/dateien?orca=1",
)
def test_browser_key_collapses_duplicates(self):
self.assertEqual(
orca.browser_key("1018-1648-Round Clip PLA + PETG(01)_PLA_0.2_30m34s.gcode"),
orca.browser_key("1018-1648-Round_Clip_PLA_+_PETG(01)_PLA_0.2_30m34s-2.gcode"),
)
def test_browser_key_strips_time_prefix(self):
self.assertEqual(
orca.browser_key("1018-1706-Round Clip PLA + PETG(01)_PLA_0.2_30m34s.gcode"),
orca.browser_key("1018-1709-Round_Clip_PLA_+_PETG(01)_PLA_0.2_30m34s.gcode"),
)
self.assertEqual(
orca.browser_key("1018-1709-Round Clip PLA + PETG(01)_PLA_0.2_30m34s.gcode"),
"roundclipplapetg01pla0230m34s",
)
def test_open_browser_debounces(self):
with tempfile.TemporaryDirectory() as tmp:
lock = Path(tmp) / "browser.lock"
focus = Path(tmp) / "focus.json"
with patch.object(orca, "BROWSER_LOCK", lock):
with patch.object(orca, "FOCUS_PATH", focus):
with patch.object(orca, "open_as_app", return_value=False):
with patch.object(orca, "webbrowser") as browser:
orca.open_browser(
"http://127.0.0.1:8770/dateien?file=1",
key="roundclip",
file_id=1,
mode="tab",
)
orca.open_browser(
"http://127.0.0.1:8770/dateien?file=2",
key="roundclip",
file_id=2,
mode="tab",
)
self.assertEqual(browser.open.call_count, 1)
data = json.loads(focus.read_text(encoding="utf-8"))
self.assertEqual(data["file_id"], 2)
def test_open_browser_app_mode(self):
with tempfile.TemporaryDirectory() as tmp:
lock = Path(tmp) / "browser.lock"
focus = Path(tmp) / "focus.json"
with patch.object(orca, "BROWSER_LOCK", lock):
with patch.object(orca, "FOCUS_PATH", focus):
with patch.object(orca, "app_already_running", return_value=False):
with patch.object(orca, "open_as_app", return_value=True) as app:
with patch.object(orca, "webbrowser") as browser:
orca.open_browser(
"http://127.0.0.1:8770/dateien?orca=1",
key="roundclip",
file_id=9,
mode="app",
)
app.assert_called_once()
browser.open.assert_not_called()
def test_open_browser_reuses_running_app(self):
with tempfile.TemporaryDirectory() as tmp:
lock = Path(tmp) / "browser.lock"
focus = Path(tmp) / "focus.json"
with patch.object(orca, "BROWSER_LOCK", lock):
with patch.object(orca, "FOCUS_PATH", focus):
with patch.object(orca, "app_already_running", return_value=True):
with patch.object(orca, "open_as_app", return_value=True) as app:
with patch.object(orca, "webbrowser") as browser:
orca.open_browser(
"http://127.0.0.1:8770/dateien?orca=1",
key="andere-datei",
file_id=11,
mode="app",
)
app.assert_not_called()
browser.open.assert_not_called()
data = json.loads(focus.read_text(encoding="utf-8"))
self.assertEqual(data["file_id"], 11)
def test_find_gcode_arg_last_matching(self):
with tempfile.TemporaryDirectory() as tmp:
folder = Path(tmp)