Files
Phoenix/unittests/test_deadobj.py
Robin Dunn 8fecc2b5f9 * Rename the wrappers for the C++ wxPlatformInfo to wx.PlatformInformation.
* Restore the wx.PlatformInfo tuple like it exists in Classic.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxPython/Phoenix/trunk@71270 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-24 00:15:33 +00:00

50 lines
1.6 KiB
Python

import imp_unittest, unittest
import wtc
import wx
#---------------------------------------------------------------------------
class deadobj_Tests(wtc.WidgetTestCase):
def test_deadobj__nonzero__1(self):
# A __nonzero__ method has been added to the wx.Window class that
# will return True if the C++ part of the object still exists. This
# can be used with if's or other conditional statements to see if it
# is still safe to call methods of that window object.
p = wx.Panel(self.frame)
self.assertTrue(True if p else False)
p.Destroy()
self.assertFalse(True if p else False)
def test_deadobj__nonzero__2(self):
# check that it also works with TLWs whose destruction is delayed
# until there are idle events.
f = wx.Frame(self.frame)
f.Show()
self.assertTrue(True if f else False)
f.Close()
self.myYield()
# TODO: figure out if this is a bug in wxMSW, or just an oddity of
# the test environment.
if 'wxMSW' not in wx.PlatformInfo:
self.assertFalse(True if f else False)
def test_deadobjException(self):
# There should be a RuntimeError exception if we try to use an object
# after it's C++ parts have been detroyed.
p = wx.Panel(self.frame)
p.Destroy()
with self.assertRaises(RuntimeError):
p.IsShown()
#---------------------------------------------------------------------------
if __name__ == '__main__':
unittest.main()