Grotti 3.3.0: Projekte mit Ordner, Datei-Löschen/Verschieben, Material-Archiv, UI-Polish.
This commit is contained in:
1 parent
4ddffbbeb1
commit
67a89d1794
45 files changed
+2856
-320
No files matched your search
@@ -28,6 +28,47 @@ class ChooseSpoolTests(unittest.TestCase):
|
||||
with patch("grotti.jobs.store.spools_for_printer", return_value=[old]):
|
||||
self.assertEqual(jobs.choose_spool(conn, "h", "PLA", None, ended_at=end)["id"], 1)
|
||||
|
||||
def test_prefers_host_spool_over_stale_hint(self):
|
||||
"""Rollenwechsel: Hint im Regal, neue Rolle am Drucker → Abzug auf die neue."""
|
||||
end = datetime(2026, 10, 18, 14, 58, tzinfo=timezone.utc)
|
||||
hinted = {
|
||||
"id": 4,
|
||||
"material_type": "PLA",
|
||||
"printer_host": "",
|
||||
"created_at": end - timedelta(days=5),
|
||||
}
|
||||
current = {
|
||||
"id": 14,
|
||||
"material_type": "PLA",
|
||||
"printer_host": "h",
|
||||
"created_at": end - timedelta(minutes=10),
|
||||
}
|
||||
conn = MagicMock()
|
||||
with patch("grotti.jobs.store.spools_for_printer", return_value=[current]):
|
||||
with patch("grotti.jobs.store.get_spool_row", return_value=hinted):
|
||||
self.assertEqual(jobs.choose_spool(conn, "h", "PLA", 4, ended_at=end)["id"], 14)
|
||||
|
||||
def test_keeps_hint_when_no_host_spool(self):
|
||||
end = datetime(2026, 10, 18, 14, 58, tzinfo=timezone.utc)
|
||||
hinted = {
|
||||
"id": 4,
|
||||
"material_type": "PLA",
|
||||
"printer_host": "",
|
||||
"created_at": end - timedelta(days=5),
|
||||
}
|
||||
conn = MagicMock()
|
||||
with patch("grotti.jobs.store.spools_for_printer", return_value=[]):
|
||||
with patch("grotti.jobs.store.get_spool_row", return_value=hinted):
|
||||
self.assertEqual(jobs.choose_spool(conn, "h", "PLA", 4, ended_at=end)["id"], 4)
|
||||
|
||||
def test_resolve_tracking_spool_prefers_host(self):
|
||||
conn = MagicMock()
|
||||
with patch(
|
||||
"grotti.jobs.resolve_spools_at_host",
|
||||
return_value=[{"id": 14, "printer_host": "h"}],
|
||||
):
|
||||
self.assertEqual(jobs.resolve_tracking_spool(conn, "h", 4), 14)
|
||||
|
||||
def test_spool_valid_for_end_naive(self):
|
||||
end = datetime(2026, 10, 1, 12, 0, tzinfo=timezone.utc)
|
||||
spool = {"created_at": datetime(2026, 9, 1, 12, 0)}
|
||||
|
||||
Reference in new issue
Block a user