@@ -156,6 +156,20 @@ def test_from_status_gate_speed_override_defaults_to_empty(self, manager) -> Non
156156 manager .update_mmu_state (_FULL_STATUS )
157157 assert manager .get_state ().gate_speed_override == ()
158158
159+ def test_from_status_parses_endless_spool_groups (self , manager ) -> None :
160+ data = {** _FULL_STATUS , "endless_spool_groups" : [0 , 1 , 3 ,0 ]}
161+ manager .update_mmu_state (data )
162+ assert manager .get_state ().endless_spool_groups == (0 , 1 , 3 , 0 )
163+
164+ def test_from_status_endless_spool_groups_defaults_to_empty (self , manager ) -> None :
165+ manager .update_mmu_state (_FULL_STATUS )
166+ assert manager .get_state ().endless_spool_groups == ()
167+
168+ def test_apply_diff_updates_endless_spool_groups (self , manager ) -> None :
169+ manager .update_mmu_state (_FULL_STATUS )
170+ manager .update_mmu_state ({"endless_spool_groups" : [0 , 0 , 1 , 1 ]})
171+ assert manager .get_state ().endless_spool_groups == (0 , 0 , 1 , 1 )
172+
159173
160174class TestGcodeSignals :
161175 def test_set_gate_info (self , manager , qtbot ) -> None :
@@ -265,54 +279,54 @@ class TestPregateSensors:
265279 def test_pre_gate_happy_path (self , manager ) -> None :
266280 manager .update_mmu_state (_FULL_STATUS )
267281 data : dict [str , bool ] = {"filament_detected" : True }
268- manager .on_pre_gate_update (data , "Mmu Pre Gate 0 " )
269- manager .on_pre_gate_update (data , "Mmu Pre Gate 1 " )
270- manager .on_pre_gate_update (data , "Mmu Pre Gate 2 " )
271- manager .on_pre_gate_update (data , "Mmu Pre Gate 3 " )
282+ manager .on_pre_gate_update (data , "mmu_pre_gate_0 " )
283+ manager .on_pre_gate_update (data , "mmu_pre_gate_1 " )
284+ manager .on_pre_gate_update (data , "mmu_pre_gate_2 " )
285+ manager .on_pre_gate_update (data , "mmu_pre_gate_3 " )
272286 assert manager .get_pre_gate_sensors () == {0 : True , 1 : True , 2 : True , 3 : True }
273287
274288 def test_pre_gate_emits_signal (self , manager , qtbot ) -> None :
275289 with qtbot .waitSignal (manager .pre_gate_changed ) as blocker :
276- manager .on_pre_gate_update ({"filament_detected" : True }, "Mmu Pre Gate 0 " )
290+ manager .on_pre_gate_update ({"filament_detected" : True }, "mmu_pre_gate_0 " )
277291 assert blocker .args == [0 , True ]
278292
279293 def test_non_mmu_sensor_ignored (self , manager , qtbot ) -> None :
280294 with qtbot .assertNotEmitted (manager .pre_gate_changed ):
281295 manager .on_pre_gate_update ({"filament_detected" : True }, "Toolhead Sensor" )
282296
283297 def test_pre_gate_stores_state (self , manager ) -> None :
284- manager .on_pre_gate_update ({"filament_detected" : True }, "Mmu Pre Gate 2 " )
298+ manager .on_pre_gate_update ({"filament_detected" : True }, "mmu_pre_gate_2 " )
285299 assert manager .get_pre_gate_sensors () == {2 : True }
286300
287301 def test_pre_gate_filament_not_detected (self , manager ) -> None :
288- manager .on_pre_gate_update ({"filament_detected" : True }, "Mmu Pre Gate 0 " )
289- manager .on_pre_gate_update ({"filament_detected" : False }, "Mmu Pre Gate 1 " )
290- manager .on_pre_gate_update ({"filament_detected" : True }, "Mmu Pre Gate 2 " )
291- manager .on_pre_gate_update ({"filament_detected" : False }, "Mmu Pre Gate 3 " )
302+ manager .on_pre_gate_update ({"filament_detected" : True }, "mmu_pre_gate_0 " )
303+ manager .on_pre_gate_update ({"filament_detected" : False }, "mmu_pre_gate_1 " )
304+ manager .on_pre_gate_update ({"filament_detected" : True }, "mmu_pre_gate_2 " )
305+ manager .on_pre_gate_update ({"filament_detected" : False }, "mmu_pre_gate_3 " )
292306 assert manager .get_pre_gate_sensors () == {0 : True , 1 : False , 2 : True , 3 : False }
293307
294308 def test_pre_gate_empty (self , manager ) -> None :
295309 assert manager .get_pre_gate_sensors () == {}
296310
297311 def test_pre_gate_multiple_emits (self , manager , qtbot ) -> None :
298312 with qtbot .waitSignal (manager .pre_gate_changed ) as blocker :
299- manager .on_pre_gate_update ({"filament_detected" : False }, "Mmu Pre Gate 0 " )
313+ manager .on_pre_gate_update ({"filament_detected" : False }, "mmu_pre_gate_0 " )
300314 assert blocker .args == [0 , False ]
301315 with qtbot .waitSignal (manager .pre_gate_changed ) as blocker :
302- manager .on_pre_gate_update ({"filament_detected" : True }, "Mmu Pre Gate 1 " )
316+ manager .on_pre_gate_update ({"filament_detected" : True }, "mmu_pre_gate_1 " )
303317 assert blocker .args == [1 , True ]
304318 with qtbot .waitSignal (manager .pre_gate_changed ) as blocker :
305- manager .on_pre_gate_update ({"filament_detected" : False }, "Mmu Pre Gate 2 " )
319+ manager .on_pre_gate_update ({"filament_detected" : False }, "mmu_pre_gate_2 " )
306320 assert blocker .args == [2 , False ]
307321 with qtbot .waitSignal (manager .pre_gate_changed ) as blocker :
308- manager .on_pre_gate_update ({"filament_detected" : True }, "Mmu Pre Gate 3 " )
322+ manager .on_pre_gate_update ({"filament_detected" : True }, "mmu_pre_gate_3 " )
309323 assert blocker .args == [3 , True ]
310324
311325 def test_pre_gate_update_is_dict (self , manager ) -> None :
312326 assert isinstance (manager .get_pre_gate_sensors (), dict )
313327
314328 def test_klippy_disconnect_clears_pre_gate_sensors (self , manager ) -> None :
315- manager .on_pre_gate_update ({"filament_detected" : True }, "Mmu Pre Gate 0 " )
329+ manager .on_pre_gate_update ({"filament_detected" : True }, "mmu_pre_gate_0 " )
316330 manager .on_klippy_state ("disconnect" )
317331 assert manager .get_pre_gate_sensors () == {}
318332
0 commit comments