Author: bugman Date: Tue Feb 3 10:14:45 2015 New Revision: 27450 URL: http://svn.gna.org/viewcvs/relax?rev=27450&view=rev Log: Fix for the GUI test clean_up_windows() method called from tearDown(). The user function window (Wiz_window) must be closed before the user function page (Uf_page), so that the Wiz_window._handler_close() can still operate the methods of the Uf_page. This avoids a huge quantity of these errors: Traceback (most recent call last): File "/data/relax/relax-trunk/gui/wizards/wiz_objects.py", line 723, in _handler_close self._pages[self._current_page].on_next() File "/usr/lib64/python2.7/site-packages/wx-2.8-gtk2-unicode/wx/_core.py", line 14615, in __getattr__ raise PyDeadObjectError(self.attrStr % self._name) wx._core.PyDeadObjectError: The C++ part of the Uf_page object has been deleted, attribute access no longer allowed. 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=27450&r1=27449&r2=27450&view=diff ============================================================================== --- trunk/test_suite/gui_tests/base_classes.py (original) +++ trunk/test_suite/gui_tests/base_classes.py Tue Feb 3 10:14:45 2015 @@ -156,12 +156,12 @@ # Destroy all user function windows to save memory (specifically to avoid the 10,000 USER Object limit in MS Windows). for name in uf_store: + if uf_store[name].wizard != None: + uf_store[name].wizard.Close() + uf_store[name].wizard = None if hasattr(uf_store[name], 'page') and uf_store[name].page != None: uf_store[name].page.Destroy() del uf_store[name].page - if uf_store[name].wizard != None: - uf_store[name].wizard.Close() - uf_store[name].wizard = None # Kill the spin viewer window. if hasattr(self.app.gui, 'spin_viewer'):