From b3d579ed37bbf20d52a39fbaeaf56361bded44de Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Wed, 23 Dec 2015 17:29:09 -0800 Subject: [PATCH 1/7] use correct variable name --- unittests/test_event.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unittests/test_event.py b/unittests/test_event.py index 21c66b14..3be72ba5 100644 --- a/unittests/test_event.py +++ b/unittests/test_event.py @@ -65,7 +65,7 @@ class Events(unittest.TestCase): def test_KeyEvent_GetUnicodeKey(self): evt = wx.KeyEvent() unikey = evt.GetUnicodeKey() - self.assertTrue(isinstance(key, int)) + self.assertTrue(isinstance(unikey, int)) def test_MaximizeEvent_ctor(self): evt = wx.MaximizeEvent() From d051ec1420b97146a725893ccad9d1f80f7efe5e Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Wed, 23 Dec 2015 17:35:08 -0800 Subject: [PATCH 2/7] ensure that waitFor calls myYield at least once --- unittests/wtc.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/unittests/wtc.py b/unittests/wtc.py index dfbd7efe..46be2978 100644 --- a/unittests/wtc.py +++ b/unittests/wtc.py @@ -64,12 +64,15 @@ class WidgetTestCase(unittest.TestCase): def waitFor(self, milliseconds): - intervals = milliseconds/100 - while intervals > 0: - wx.MilliSleep(100) + INTERVAL = 100 + intervals = milliseconds/INTERVAL + while True: + wx.MilliSleep(INTERVAL) self.myYield() if hasattr(self, 'flag') and self.flag: break + if intervals <= 0: + break intervals -= 1 From e45b7667f8df60e0d8635e3cc0f847bce37def50 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Wed, 23 Dec 2015 17:36:03 -0800 Subject: [PATCH 3/7] get the uiaction tests working on OSX again, mostly --- unittests/test_uiaction.py | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/unittests/test_uiaction.py b/unittests/test_uiaction.py index d97e7b00..2aab6f1e 100644 --- a/unittests/test_uiaction.py +++ b/unittests/test_uiaction.py @@ -10,6 +10,7 @@ WAIT=50 class MouseEventsPanel(wx.Panel): def __init__(self, parent, eventBinders): wx.Panel.__init__(self, parent, size=parent.GetClientSize()) + self.SetBackgroundColour('pink') self.events = list() if not isinstance(eventBinders, (list, tuple)): eventBinders = [eventBinders] @@ -18,10 +19,11 @@ class MouseEventsPanel(wx.Panel): def onMouseEvent(self, evt): self.events.append( (evt.EventType, evt.Position) ) - #print self.events[-1] + #print(self.events) evt.Skip() + class uiaction_MouseTests(wtc.WidgetTestCase): @@ -39,10 +41,14 @@ class uiaction_MouseTests(wtc.WidgetTestCase): return False return True + def setUp(self): + super(uiaction_MouseTests, self).setUp() + self.frame.WarpPointer(-10,-10) + def test_uiactionMouseMotion(self): p = MouseEventsPanel(self.frame, wx.EVT_MOTION) - self.assertTrue(p.Size.Get() > (20,20)) + self.myYield() uia = wx.UIActionSimulator() uia.MouseMove(p.ClientToScreen((1,1))); self.waitFor(WAIT) @@ -51,12 +57,6 @@ class uiaction_MouseTests(wtc.WidgetTestCase): self.waitFor(WAIT) self.waitFor(WAIT) - if sys.platform == 'darwin': - # The events do seem to be happening, but I just can't seem to - # capture them the same way as in the other tests, so bail out - # before the asserts to avoid false negatives. - return - self.assertEqual(len(p.events), 3) self.assertTrue(self.cmp(p.events[0], wx.wxEVT_MOTION, (1,1))) self.assertTrue(self.cmp(p.events[1], wx.wxEVT_MOTION, (5,5))) @@ -65,6 +65,7 @@ class uiaction_MouseTests(wtc.WidgetTestCase): def test_uiactionMouseLeftDownUp(self): p = MouseEventsPanel(self.frame, [wx.EVT_LEFT_DOWN, wx.EVT_LEFT_UP]) + self.myYield() uia = wx.UIActionSimulator() uia.MouseMove(p.ClientToScreen((10,10))); self.waitFor(WAIT) @@ -79,6 +80,7 @@ class uiaction_MouseTests(wtc.WidgetTestCase): def test_uiactionMouseRightDownUp(self): p = MouseEventsPanel(self.frame, [wx.EVT_RIGHT_DOWN, wx.EVT_RIGHT_UP]) + self.myYield() uia = wx.UIActionSimulator() uia.MouseMove(p.ClientToScreen((10,10))); self.waitFor(WAIT) @@ -93,6 +95,7 @@ class uiaction_MouseTests(wtc.WidgetTestCase): def test_uiactionMouseLeftClick(self): p = MouseEventsPanel(self.frame, [wx.EVT_LEFT_DOWN, wx.EVT_LEFT_UP]) + self.myYield() uia = wx.UIActionSimulator() uia.MouseMove(p.ClientToScreen((10,10))); self.waitFor(WAIT) @@ -107,13 +110,13 @@ class uiaction_MouseTests(wtc.WidgetTestCase): def test_uiactionMouseLeftDClick(self): p = MouseEventsPanel(self.frame, [wx.EVT_LEFT_DOWN, wx.EVT_LEFT_UP, wx.EVT_LEFT_DCLICK]) + self.myYield() uia = wx.UIActionSimulator() uia.MouseMove(p.ClientToScreen((10,10))); self.waitFor(WAIT) uia.MouseDblClick(); self.waitFor(WAIT) self.waitFor(WAIT) - #print p.events self.assertTrue(len(p.events) == 4) self.assertTrue(self.cmp(p.events[0], wx.wxEVT_LEFT_DOWN, (10,10))) self.assertTrue(self.cmp(p.events[1], wx.wxEVT_LEFT_UP, (10,10))) @@ -133,13 +136,6 @@ class uiaction_MouseTests(wtc.WidgetTestCase): uia.MouseDragDrop(x1,y1, x2,y2); self.waitFor(WAIT) self.waitFor(WAIT) - if sys.platform == 'darwin': - # The events do seem to be happening, but I just can't seem to - # capture them the same way as in the other tests, so bail out - # before the asserts to avoid false negatives. - return - - #print p.events self.assertEqual(len(p.events), 4) self.assertTrue(self.cmp(p.events[0], wx.wxEVT_MOTION, (10,10))) self.assertTrue(self.cmp(p.events[1], wx.wxEVT_LEFT_DOWN, (10,10))) @@ -168,7 +164,7 @@ class uiaction_KeyboardTests(wtc.WidgetTestCase): uia.KeyUp(ord(c)); self.waitFor(WAIT) if c.isupper(): uia.KeyUp(wx.WXK_SHIFT); self.waitFor(WAIT) - self.waitFor(200) + self.waitFor(WAIT*2) self.assertEqual(self.tc.GetValue(), "This is a test") @@ -180,7 +176,7 @@ class uiaction_KeyboardTests(wtc.WidgetTestCase): if c.isupper(): mod = wx.MOD_SHIFT uia.Char(ord(c), mod); self.waitFor(WAIT) - self.waitFor(200) + self.waitFor(WAIT*2) self.assertEqual(self.tc.GetValue(), "This is a test") From 299c95c7fa6276b6db3bb00b07c955a607d59433 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Wed, 23 Dec 2015 17:37:45 -0800 Subject: [PATCH 4/7] Pull constants used as arg default values from core, to fix test_pi_import --- etg/_stc.py | 5 ++++- etg/_xrc.py | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/etg/_stc.py b/etg/_stc.py index 27560f55..8f3f02c9 100644 --- a/etg/_stc.py +++ b/etg/_stc.py @@ -51,7 +51,10 @@ def run(): module.addHeaderCode('#include ') module.addImport('_core') - module.addPyCode('import wx', order=10) + module.addPyCode('''\ + import wx + ID_ANY = wx.ID_ANY # Needed for some parameter defaults in this module + ''', order=10) module.addInclude(INCLUDES) diff --git a/etg/_xrc.py b/etg/_xrc.py index c7ed3cea..ad0f1e05 100644 --- a/etg/_xrc.py +++ b/etg/_xrc.py @@ -53,7 +53,10 @@ def run(): module.addHeaderCode('#include ') module.addImport('_core') module.addImport('_xml') - module.addPyCode('import wx', order=10) + module.addPyCode('''\ + import wx + ID_NONE = wx.ID_NONE # Needed for some parameter defaults in this module + ''', order=10) module.addInclude(INCLUDES) module.addInitializerCode("""\ From bd83c28a01bb5c5b3ac5f43fea0c8559a0954c6d Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Wed, 23 Dec 2015 17:56:43 -0800 Subject: [PATCH 5/7] vec2d tests do not need pypdf --- unittests/test_lib_pdfviewer_vec2d.py | 107 +++++++++++--------------- 1 file changed, 46 insertions(+), 61 deletions(-) diff --git a/unittests/test_lib_pdfviewer_vec2d.py b/unittests/test_lib_pdfviewer_vec2d.py index c4a462f2..162eed9a 100644 --- a/unittests/test_lib_pdfviewer_vec2d.py +++ b/unittests/test_lib_pdfviewer_vec2d.py @@ -2,133 +2,118 @@ import imp_unittest, unittest import wtc import pickle -try: - from wx.lib.pdfviewer.vec2d import vec2d - havePyPDF = True -except ImportError: - havePyPDF = False # Assume an import error is due to missing pyPdf +from wx.lib.pdfviewer.vec2d import vec2d #--------------------------------------------------------------------------- class lib_pdfviewer_vec2d_Tests(wtc.WidgetTestCase): - @unittest.skipIf(not havePyPDF, "pyPdf required") def test_lib_pdfviewer_vec2d_CreationAndAccess(self): v = vec2d(111,222) - self.assert_(v.x == 111 and v.y == 222) + self.assertTrue(v.x == 111 and v.y == 222) v.x = 333 v[1] = 444 - self.assert_(v[0] == 333 and v[1] == 444) + self.assertTrue(v[0] == 333 and v[1] == 444) - @unittest.skipIf(not havePyPDF, "pyPdf required") def test_lib_pdfviewer_vec2d_Math(self): v = vec2d(111,222) self.assertEqual(v + 1, vec2d(112,223)) - self.assert_(v - 2 == [109,220]) - self.assert_(v * 3 == (333,666)) - self.assert_(v / 2.0 == vec2d(55.5, 111)) - self.assert_(v / 2 == (55, 111)) - self.assert_(v ** vec2d(2,3) == [12321, 10941048]) - self.assert_(v + [-11, 78] == vec2d(100, 300)) - self.assert_(v / [11,2] == [10,111]) + self.assertTrue(v - 2 == [109,220]) + self.assertTrue(v * 3 == (333,666)) + self.assertTrue(v / 2.0 == vec2d(55.5, 111)) + self.assertTrue(v // 2 == (55, 111)) + self.assertTrue(v ** vec2d(2,3) == [12321, 10941048]) + self.assertTrue(v + [-11, 78] == vec2d(100, 300)) + self.assertTrue(v // [11,2] == [10,111]) - @unittest.skipIf(not havePyPDF, "pyPdf required") def test_lib_pdfviewer_vec2d_ReverseMath(self): v = vec2d(111,222) - self.assert_(1 + v == vec2d(112,223)) - self.assert_(2 - v == [-109,-220]) - self.assert_(3 * v == (333,666)) - self.assert_([222,999] / v == [2,4]) - self.assert_([111,222] ** vec2d(2,3) == [12321, 10941048]) - self.assert_([-11, 78] + v == vec2d(100, 300)) + self.assertTrue(1 + v == vec2d(112,223)) + self.assertTrue(2 - v == [-109,-220]) + self.assertTrue(3 * v == (333,666)) + self.assertTrue([222,999] // v == [2,4]) + self.assertTrue([111,222] ** vec2d(2,3) == [12321, 10941048]) + self.assertTrue([-11, 78] + v == vec2d(100, 300)) - @unittest.skipIf(not havePyPDF, "pyPdf required") def test_lib_pdfviewer_vec2d_Unary(self): v = vec2d(111,222) v = -v - self.assert_(v == [-111,-222]) + self.assertTrue(v == [-111,-222]) v = abs(v) - self.assert_(v == [111,222]) + self.assertTrue(v == [111,222]) - @unittest.skipIf(not havePyPDF, "pyPdf required") def test_lib_pdfviewer_vec2d_Length(self): v = vec2d(3,4) - self.assert_(v.length == 5) - self.assert_(v.get_length_sqrd() == 25) - self.assert_(v.normalize_return_length() == 5) - self.assert_(v.length == 1) + self.assertTrue(v.length == 5) + self.assertTrue(v.get_length_sqrd() == 25) + self.assertTrue(v.normalize_return_length() == 5) + self.assertTrue(v.length == 1) v.length = 5 - self.assert_(v == vec2d(3,4)) + self.assertTrue(v == vec2d(3,4)) v2 = vec2d(10, -2) - self.assert_(v.get_distance(v2) == (v - v2).get_length()) + self.assertTrue(v.get_distance(v2) == (v - v2).get_length()) - @unittest.skipIf(not havePyPDF, "pyPdf required") def test_lib_pdfviewer_vec2d_Angles(self): v = vec2d(0, 3) - self.assertEquals(v.angle, 90) + self.assertEqual(v.angle, 90) v2 = vec2d(v) v.rotate(-90) self.assertEqual(v.get_angle_between(v2), 90) v2.angle -= 90 self.assertEqual(v.length, v2.length) - self.assertEquals(v2.angle, 0) + self.assertEqual(v2.angle, 0) self.assertEqual(v2, [3, 0]) - self.assert_((v - v2).length < .00001) + self.assertTrue((v - v2).length < .00001) self.assertEqual(v.length, v2.length) v2.rotate(300) - self.assertAlmostEquals(v.get_angle_between(v2), -60) + self.assertAlmostEqual(v.get_angle_between(v2), -60) v2.rotate(v2.get_angle_between(v)) angle = v.get_angle_between(v2) - self.assertAlmostEquals(v.get_angle_between(v2), 0) + self.assertAlmostEqual(v.get_angle_between(v2), 0) - @unittest.skipIf(not havePyPDF, "pyPdf required") def test_lib_pdfviewer_vec2d_HighLevel(self): basis0 = vec2d(5.0, 0) basis1 = vec2d(0, .5) v = vec2d(10, 1) - self.assert_(v.convert_to_basis(basis0, basis1) == [2, 2]) - self.assert_(v.projection(basis0) == (10, 0)) - self.assert_(basis0.dot(basis1) == 0) + self.assertTrue(v.convert_to_basis(basis0, basis1) == [2, 2]) + self.assertTrue(v.projection(basis0) == (10, 0)) + self.assertTrue(basis0.dot(basis1) == 0) - @unittest.skipIf(not havePyPDF, "pyPdf required") def test_lib_pdfviewer_vec2d_Cross(self): lhs = vec2d(1, .5) rhs = vec2d(4,6) - self.assert_(lhs.cross(rhs) == 4) + self.assertTrue(lhs.cross(rhs) == 4) - @unittest.skipIf(not havePyPDF, "pyPdf required") def test_lib_pdfviewer_vec2d_Comparison(self): int_vec = vec2d(3, -2) flt_vec = vec2d(3.0, -2.0) zero_vec = vec2d(0, 0) - self.assert_(int_vec == flt_vec) - self.assert_(int_vec != zero_vec) - self.assert_((flt_vec == zero_vec) == False) - self.assert_((flt_vec != int_vec) == False) - self.assert_(int_vec == (3, -2)) - self.assert_(int_vec != [0, 0]) - self.assert_(int_vec != 5) - self.assert_(int_vec != [3, -2, -5]) + self.assertTrue(int_vec == flt_vec) + self.assertTrue(int_vec != zero_vec) + self.assertTrue((flt_vec == zero_vec) == False) + self.assertTrue((flt_vec != int_vec) == False) + self.assertTrue(int_vec == (3, -2)) + self.assertTrue(int_vec != [0, 0]) + self.assertTrue(int_vec != 5) + self.assertTrue(int_vec != [3, -2, -5]) - @unittest.skipIf(not havePyPDF, "pyPdf required") def test_lib_pdfviewer_vec2d_Inplace(self): inplace_vec = vec2d(5, 13) inplace_ref = inplace_vec inplace_src = vec2d(inplace_vec) inplace_vec *= .5 inplace_vec += .5 - inplace_vec /= (3, 6) + inplace_vec //= (3, 6) inplace_vec += vec2d(-1, -1) - alternate = (inplace_src*.5 + .5)/vec2d(3,6) + [-1, -1] - self.assertEquals(inplace_vec, inplace_ref) - self.assertEquals(inplace_vec, alternate) + alternate = (inplace_src*.5 + .5) // vec2d(3,6) + [-1, -1] + self.assertEqual(inplace_vec, inplace_ref) + self.assertEqual(inplace_vec, alternate) - @unittest.skipIf(not havePyPDF, "pyPdf required") def test_lib_pdfviewer_vec2d_Pickle(self): testvec = vec2d(5, .3) testvec_str = pickle.dumps(testvec) loaded_vec = pickle.loads(testvec_str) - self.assertEquals(testvec, loaded_vec) + self.assertEqual(testvec, loaded_vec) #--------------------------------------------------------------------------- From 3bd8317aaf0efee6c6b931f2d458724d3ecb9089 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Wed, 23 Dec 2015 18:05:01 -0800 Subject: [PATCH 6/7] skip pdfviewer tests on Mac --- unittests/test_lib_pdfviewer_pdfviewer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unittests/test_lib_pdfviewer_pdfviewer.py b/unittests/test_lib_pdfviewer_pdfviewer.py index bf5855e8..acda086f 100644 --- a/unittests/test_lib_pdfviewer_pdfviewer.py +++ b/unittests/test_lib_pdfviewer_pdfviewer.py @@ -15,7 +15,7 @@ samplePdf = os.path.join(dataDir, "sample.pdf") #--------------------------------------------------------------------------- -@unittest.skip('crashing on OSX...') # problem with a nested yield in GenericProgressDialog? +@unittest.skipIf('wxMac' in wx.PlatformInfo, 'test is crashing on Mac...') class lib_pdfviewer_pdfviewer_Tests(wtc.WidgetTestCase): @unittest.skipIf(not havePyPDF, "pyPdf required") From 157c2a43e0cb9115276cd71ee6f7ffd5160a42e2 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Mon, 22 Feb 2016 21:07:17 -0800 Subject: [PATCH 7/7] fix test assertion --- unittests/test_gdicmn.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unittests/test_gdicmn.py b/unittests/test_gdicmn.py index c10cebc8..867d88c0 100644 --- a/unittests/test_gdicmn.py +++ b/unittests/test_gdicmn.py @@ -201,7 +201,7 @@ class Size(unittest.TestCase): def test_DefaultSize(self): ds = wx.DefaultSize - self.assertRaises(ds == (-1,-1)) + self.assertTrue(ds == (-1,-1)) def test_GetSet(self): s = wx.Size(100,200)