From 4d6468720e159a4ed32a4b0bca70a5a3d2ae8623 Mon Sep 17 00:00:00 2001 From: Robert Date: Mon, 14 Aug 2023 20:20:19 +0100 Subject: [PATCH] Ensure observers in GlobalFigureManager are destroyed --- src/mslice/plotting/globalfiguremanager.py | 1 + tests/app_test.py | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/mslice/plotting/globalfiguremanager.py b/src/mslice/plotting/globalfiguremanager.py index 2d19aae67..fca1d0675 100644 --- a/src/mslice/plotting/globalfiguremanager.py +++ b/src/mslice/plotting/globalfiguremanager.py @@ -186,6 +186,7 @@ def destroy_all(cls): } cls._activeQue = [] cls._figures.clear() + cls.observers = [] @classmethod def has_fignum(cls, num): diff --git a/tests/app_test.py b/tests/app_test.py index 29cc7ad4c..64e8c42d6 100644 --- a/tests/app_test.py +++ b/tests/app_test.py @@ -3,6 +3,7 @@ import unittest from mock import patch from mslice.app.mainwindow import MainWindow +from mslice.plotting.globalfiguremanager import GlobalFigureManager qapp = None @@ -15,6 +16,8 @@ def setUp(self): qapp = QtWidgets.QApplication([' ']) def tearDown(self): + GlobalFigureManager.destroy_all() + # Required to sendPostedEvents twice to ensure the MainWindow is deleted qapp.sendPostedEvents() qapp.sendPostedEvents() @@ -28,4 +31,3 @@ def test_mainwindow(self): window = MainWindow() window.setAttribute(Qt.WA_DeleteOnClose, True) QTimer.singleShot(0, window.close) -