From e09aa53196fc642311bed0503333799ec99f8f28 Mon Sep 17 00:00:00 2001
From: Oscar Gustafsson <oscar.gustafsson@gmail.com>
Date: Thu, 6 Apr 2023 10:51:55 +0200
Subject: [PATCH] Test Simulation GUI

---
 b_asic/gui_utils/plot_window.py | 14 ++++++++++++--
 test/test_simulation_gui.py     | 11 +++++++++++
 2 files changed, 23 insertions(+), 2 deletions(-)
 create mode 100644 test/test_simulation_gui.py

diff --git a/b_asic/gui_utils/plot_window.py b/b_asic/gui_utils/plot_window.py
index 77babe1f..44a67312 100644
--- a/b_asic/gui_utils/plot_window.py
+++ b/b_asic/gui_utils/plot_window.py
@@ -100,8 +100,13 @@ class PlotWindow(QDialog):
         self._plot_axes = self._plot_fig.add_subplot(111)
         self._plot_axes.xaxis.set_major_locator(MaxNLocator(integer=True))
 
+        ordered_for_plotting = {}
+        ordered_for_plotting.update(sim_res_others)
+        ordered_for_plotting.update(sim_res_delays)
+        ordered_for_plotting.update(sim_res_ins)
+        ordered_for_plotting.update(sim_res_outs)
         self._lines = {}
-        for key in sim_res_others | sim_res_delays | sim_res_ins | sim_res_outs:
+        for key, result in ordered_for_plotting.items():
             line = self._plot_axes.plot(sim_result[key], label=key)
             self._lines[key] = line[0]
 
@@ -127,7 +132,12 @@ class PlotWindow(QDialog):
         self.checklist.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)
         self.checklist.itemChanged.connect(self._item_change)
         listitems = {}
-        for key in sim_res_ins | sim_res_outs | sim_res_delays | sim_res_others:
+        ordered_for_checklist = {}
+        ordered_for_checklist.update(sim_res_ins)
+        ordered_for_checklist.update(sim_res_outs)
+        ordered_for_checklist.update(sim_res_delays)
+        ordered_for_checklist.update(sim_res_others)
+        for key in ordered_for_checklist:
             listitem = QListWidgetItem(key)
             listitems[key] = listitem
             self.checklist.addItem(listitem)
diff --git a/test/test_simulation_gui.py b/test/test_simulation_gui.py
new file mode 100644
index 00000000..753f093c
--- /dev/null
+++ b/test/test_simulation_gui.py
@@ -0,0 +1,11 @@
+import pytest
+
+try:
+    from b_asic.gui_utils.plot_window import PlotWindow
+except ImportError:
+    pytestmark = pytest.mark.skip("Qt not setup")
+
+
+def test_start(qtbot):
+    widget = PlotWindow({})
+    qtbot.addWidget(widget)
-- 
GitLab