import pytest from target_simulator.gui import sfp_debug_window def test_sfpdebugwindow_starts_polling(monkeypatch): calls = [] # Replace the after method on the class to capture scheduling attempts def fake_after(self, ms, callback): calls.append((ms, callback)) return "fake_after_id" monkeypatch.setattr( sfp_debug_window.SfpDebugWindow, "after", fake_after, raising=False ) # Instantiate the window (should call after in __init__) w = sfp_debug_window.SfpDebugWindow(master=None) # Ensure at least one scheduling call was made assert calls, "SfpDebugWindow did not schedule the polling loop via after()" # Verify that one of the calls uses the configured GUI_POLL_INTERVAL_MS assert any(ms == w.GUI_POLL_INTERVAL_MS for ms, _ in calls) # Verify that the callback scheduled is the internal _process_latest_payloads method assert any(cb == w._process_latest_payloads for _, cb in calls)