mirror of
https://github.com/wxWidgets/Phoenix.git
synced 2026-01-07 04:20:07 +01:00
Merge branch 'fixes-for-some-unittests'
This commit is contained in:
@@ -51,7 +51,10 @@ def run():
|
||||
|
||||
module.addHeaderCode('#include <wxpy_api.h>')
|
||||
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)
|
||||
|
||||
|
||||
|
||||
@@ -53,7 +53,10 @@ def run():
|
||||
module.addHeaderCode('#include <wxpy_api.h>')
|
||||
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("""\
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
@@ -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")
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user