from aare.gui.widgets.alert_banner import AlertBanner from aare.gui.widgets.status_label import StatusLabel def test_alert_banner_show_message(qtbot): banner = AlertBanner() qtbot.addWidget(banner) assert not banner.isVisible() banner.show_message("Test Error", is_error=True) assert banner.isVisible() assert "Test Error" in banner._label.text() assert "🛑" in banner._label.text() banner.show_message("Test Success", is_error=False) assert banner.isVisible() assert "Test Success" in banner._label.text() assert "✅" in banner._label.text() banner.clear_message() assert not banner.isVisible() def test_alert_banner_waiting(qtbot): banner = AlertBanner() qtbot.addWidget(banner) banner.show_waiting("Working", countdown_seconds=10) assert banner.isVisible() assert "Working" in banner._label.text() assert "⏳" in banner._label.text() assert "(10s)" in banner._label.text() # Tick manually if we wanted to test timer, but usually we just test state banner._tick_countdown() assert "(9s)" in banner._label.text() def test_status_label(qtbot): label = StatusLabel(val=1.234, decimals=2) qtbot.addWidget(label) assert label.text() == "1.23" label.new_value(5.6) assert label.text() == "5.60"