mailr27491 - /trunk/test_suite/gui_tests/base_classes.py


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by edward on February 03, 2015 - 17:58:
Author: bugman
Date: Tue Feb  3 17:58:51 2015
New Revision: 27491

URL: http://svn.gna.org/viewcvs/relax?rev=27491&view=rev
Log:
Added memory management checking to the GUI test suite tearDown() method.

If any top level windows are present, excluding the main GUI window and the 
relax controller, then a
RelaxError will be raised.  Such a check will significantly help in future 
GUI coding, as now there
will be feedback if not all windows are properly destroyed.


Modified:
    trunk/test_suite/gui_tests/base_classes.py

Modified: trunk/test_suite/gui_tests/base_classes.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/test_suite/gui_tests/base_classes.py?rev=27491&r1=27490&r2=27491&view=diff
==============================================================================
--- trunk/test_suite/gui_tests/base_classes.py  (original)
+++ trunk/test_suite/gui_tests/base_classes.py  Tue Feb  3 17:58:51 2015
@@ -31,6 +31,8 @@
 
 # relax module imports.
 from data_store import Relax_data_store; ds = Relax_data_store()
+from gui.controller import Controller
+from gui.relax_gui import Main
 from gui.string_conv import str_to_gui
 from gui.uf_objects import Uf_storage; uf_store = Uf_storage()
 from gui.wizards.wiz_objects import Wiz_window
@@ -307,9 +309,22 @@
 
         # Print out a list of all living windows to help ensure that custom 
Close() and Destroy() methods are cleaning up all objects.
         print("\n\nList of all living GUI elements - this must only include 
the main GUI window and the relax controller:")
+        all_destroyed = True
         for window in wx.GetTopLevelWindows():
+            # Printout.
             print("    Window: %s" % window)
             if isinstance(window, Wiz_window):
                 print("        Wizard title: %s" % window.title)
                 print("        Wizard pages: %s" % window._pages)
+
+            # Skip the main GUI window and the relax controller.
+            if isinstance(window, Main) or isinstance(window, Controller):
+                continue
+
+            # Failure of memory management.
+            all_destroyed = False
         print("\n\n\n")
+
+        # Memory management check.
+        if not all_destroyed:
+            raise RelaxError("Memory management failure - not all top level 
windows have been destroyed.")




Related Messages


Powered by MHonArc, Updated Tue Feb 03 18:20:02 2015