class MouseWheelTestCase(TestCase): def setUp(self): import wx # set up Enable components and tools self.container = Container(postion=[0, 0], bounds=[600, 600]) self.tool = MouseEventTool(component=self.container) self.container.tools.append(self.tool) # set up wx components and tools self.parent = wx.Frame(None, size=(600, 600)) self.window = Window( self.parent, size=(600, 600), component=self.container ) # Hack: event processing code skips if window not actually shown by # testing for value of _size self.window._size = (600, 600) def test_vertical_mouse_wheel(self): import wx # create and mock a mouse wheel event wx_event = wx.MouseEvent(mouseType=wx.wxEVT_MOUSEWHEEL) wx_event.GetWheelRotation = MagicMock(return_value=200) wx_event.GetWheelAxis = MagicMock(return_value=wx.MOUSE_WHEEL_VERTICAL) wx_event.GetLinesPerAction = MagicMock(return_value=1) wx_event.GetWheelDelta = MagicMock(return_value=120) # dispatch event self.window._on_mouse_wheel(wx_event) # validate results self.assertEqual(self.tool.event.mouse_wheel_axis, 'vertical') self.assertAlmostEqual(self.tool.event.mouse_wheel, 5.0/3.0) self.assertEqual(self.tool.event.mouse_wheel_delta, (0, 200)) def test_horizontal_mouse_wheel(self): import wx # create and mock a mouse wheel event wx_event = wx.MouseEvent(mouseType=wx.wxEVT_MOUSEWHEEL) wx_event.GetWheelRotation = MagicMock(return_value=200) wx_event.GetWheelAxis = MagicMock( return_value=wx.MOUSE_WHEEL_HORIZONTAL) wx_event.GetLinesPerAction = MagicMock(return_value=1) wx_event.GetWheelDelta = MagicMock(return_value=120) # dispatch event self.window._handle_mouse_event('mouse_wheel', wx_event) # validate results self.assertEqual(self.tool.event.mouse_wheel_axis, 'horizontal') self.assertAlmostEqual(self.tool.event.mouse_wheel, 5.0/3.0) self.assertEqual(self.tool.event.mouse_wheel_delta, (200, 0))
class MouseWheelTestCase(TestCase): def setUp(self): import wx # set up Enable components and tools self.container = Container(postion=[0, 0], bounds=[600, 600]) self.tool = MouseEventTool(component=self.container) self.container.tools.append(self.tool) # set up wx components and tools self.parent = wx.Frame(None, size=(600, 600)) self.window = Window(self.parent, size=(600, 600), component=self.container) # Hack: event processing code skips if window not actually shown by # testing for value of _size self.window._size = (600, 600) def test_vertical_mouse_wheel(self): import wx # create and mock a mouse wheel event wx_event = wx.MouseEvent(mouseType=wx.wxEVT_MOUSEWHEEL) wx_event.GetWheelRotation = MagicMock(return_value=200) wx_event.GetWheelAxis = MagicMock(return_value=wx.MOUSE_WHEEL_VERTICAL) wx_event.GetLinesPerAction = MagicMock(return_value=1) wx_event.GetWheelDelta = MagicMock(return_value=120) # dispatch event self.window._on_mouse_wheel(wx_event) # validate results self.assertEqual(self.tool.event.mouse_wheel_axis, 'vertical') self.assertAlmostEqual(self.tool.event.mouse_wheel, 5.0 / 3.0) self.assertEqual(self.tool.event.mouse_wheel_delta, (0, 200)) def test_horizontal_mouse_wheel(self): import wx # create and mock a mouse wheel event wx_event = wx.MouseEvent(mouseType=wx.wxEVT_MOUSEWHEEL) wx_event.GetWheelRotation = MagicMock(return_value=200) wx_event.GetWheelAxis = MagicMock( return_value=wx.MOUSE_WHEEL_HORIZONTAL) wx_event.GetLinesPerAction = MagicMock(return_value=1) wx_event.GetWheelDelta = MagicMock(return_value=120) # dispatch event self.window._handle_mouse_event('mouse_wheel', wx_event) # validate results self.assertEqual(self.tool.event.mouse_wheel_axis, 'horizontal') self.assertAlmostEqual(self.tool.event.mouse_wheel, 5.0 / 3.0) self.assertEqual(self.tool.event.mouse_wheel_delta, (200, 0))
class MouseWheelTestCase(TestCase): def setUp(self): import wx # set up Enable components and tools self.container = Container(postion=[0, 0], bounds=[600, 600]) self.tool = MouseEventTool(component=self.container) self.container.tools.append(self.tool) # set up wx components and tools self.parent = wx.Frame(None, size=(600, 600)) self.window = Window( self.parent, size=(600, 600), component=self.container ) # Hack: event processing code skips if window not actually shown by # testing for value of _size self.window._size = (600, 600) def test_vertical_mouse_wheel(self): import wx # create and mock a mouse wheel event wx_event = wx.MouseEvent(wx.wxEVT_MOUSEWHEEL) wx_event.GetWheelRotation = MagicMock(return_value=200) wx_event.GetWheelAxis = MagicMock(return_value=wx.MOUSE_WHEEL_VERTICAL) wx_event.GetLinesPerAction = MagicMock(return_value=1) wx_event.GetWheelDelta = MagicMock(return_value=120) # dispatch event self.window._on_mouse_wheel(wx_event) # validate results self.assertEqual(self.tool.event.mouse_wheel_axis, "vertical") self.assertAlmostEqual(self.tool.event.mouse_wheel, 5.0 / 3.0) # "Expected failure" here # The expected value is probably wrong. # When the test was written, the expected value was (0, 200) # (0, 200) would match Qt test (enthought/enable#458) self.assertEqual(self.tool.event.mouse_wheel_delta, (0, 1.0)) def test_horizontal_mouse_wheel(self): import wx # create and mock a mouse wheel event wx_event = wx.MouseEvent(wx.wxEVT_MOUSEWHEEL) wx_event.GetWheelRotation = MagicMock(return_value=200) wx_event.GetWheelAxis = MagicMock( return_value=wx.MOUSE_WHEEL_HORIZONTAL ) wx_event.GetLinesPerAction = MagicMock(return_value=1) wx_event.GetWheelDelta = MagicMock(return_value=120) # dispatch event self.window._handle_mouse_event("mouse_wheel", wx_event) # validate results self.assertEqual(self.tool.event.mouse_wheel_axis, "horizontal") self.assertAlmostEqual(self.tool.event.mouse_wheel, 5.0 / 3.0) # "Expected failure" here # The expected value is probably wrong. # When the test was written, the expected value was (200, 0) # (200, 0) would match Qt test (enthought/enable#458) self.assertEqual(self.tool.event.mouse_wheel_delta, (1.0, 0))
class MouseWheelTestCase(TestCase): def setUp(self): # set up Enable components and tools self.container = Container(postion=[0, 0], bounds=[600, 600]) self.tool = MouseEventTool(component=self.container) self.container.tools.append(self.tool) # set up qt components self.window = Window(None, size=(600, 600), component=self.container) # Hack: event processing code skips if window not actually shown by # testing for value of _size self.window._size = (600, 600) def test_vertical_mouse_wheel(self): from pyface.qt import QtCore, QtGui is_qt4 = (QtCore.__version_info__[0] <= 4) # create and mock a mouse wheel event if is_qt4: qt_event = QtGui.QWheelEvent(QtCore.QPoint(0, 0), 200, QtCore.Qt.NoButton, QtCore.Qt.NoModifier, QtCore.Qt.Vertical) else: qt_event = QtGui.QWheelEvent( QtCore.QPointF(0, 0), self.window.control.mapToGlobal(QtCore.QPoint(0, 0)), QtCore.QPoint(0, 200), QtCore.QPoint(0, 200), 200, QtCore.Qt.Vertical, QtCore.Qt.NoButton, QtCore.Qt.NoModifier, QtCore.Qt.ScrollUpdate) # dispatch event self.window._on_mouse_wheel(qt_event) # validate results self.assertEqual(self.tool.event.mouse_wheel_axis, 'vertical') self.assertAlmostEqual(self.tool.event.mouse_wheel, 5.0 / 3.0) self.assertEqual(self.tool.event.mouse_wheel_delta, (0, 200)) def test_horizontal_mouse_wheel(self): from pyface.qt import QtCore, QtGui is_qt4 = (QtCore.__version_info__[0] <= 4) # create and mock a mouse wheel event if is_qt4: qt_event = QtGui.QWheelEvent(QtCore.QPoint(0, 0), 200, QtCore.Qt.NoButton, QtCore.Qt.NoModifier, QtCore.Qt.Horizontal) else: qt_event = QtGui.QWheelEvent( QtCore.QPoint(0, 0), self.window.control.mapToGlobal(QtCore.QPoint(0, 0)), QtCore.QPoint(200, 0), QtCore.QPoint(200, 0), 200, QtCore.Qt.Vertical, QtCore.Qt.NoButton, QtCore.Qt.NoModifier, QtCore.Qt.ScrollUpdate) # dispatch event self.window._on_mouse_wheel(qt_event) # validate results self.assertEqual(self.tool.event.mouse_wheel_axis, 'horizontal') self.assertAlmostEqual(self.tool.event.mouse_wheel, 5.0 / 3.0) self.assertEqual(self.tool.event.mouse_wheel_delta, (200, 0)) def test_vertical_mouse_wheel_without_pixel_delta(self): from pyface.qt import QtCore, QtGui is_qt4 = (QtCore.__version_info__[0] <= 4) if is_qt4: self.skipTest("Not directly applicable in Qt4") # create and mock a mouse wheel event qt_event = QtGui.QWheelEvent( QtCore.QPointF(0, 0), self.window.control.mapToGlobal(QtCore.QPoint(0, 0)), QtCore.QPoint(0, 0), QtCore.QPoint(0, 200), 200, QtCore.Qt.Vertical, QtCore.Qt.NoButton, QtCore.Qt.NoModifier, QtCore.Qt.ScrollUpdate) # dispatch event self.window._on_mouse_wheel(qt_event) # validate results self.assertEqual(self.tool.event.mouse_wheel_axis, 'vertical') self.assertEqual(self.tool.event.mouse_wheel, 5.0 / 3.0) self.assertEqual(self.tool.event.mouse_wheel_delta, (0, 200))
class MouseWheelTestCase(TestCase): def setUp(self): # set up Enable components and tools self.container = Container(postion=[0, 0], bounds=[600, 600]) self.tool = MouseEventTool(component=self.container) self.container.tools.append(self.tool) # set up qt components self.window = Window(None, size=(600, 600), component=self.container) # Hack: event processing code skips if window not actually shown by # testing for value of _size self.window._size = (600, 600) def test_vertical_mouse_wheel(self): from pyface.qt import QtCore, QtGui, is_qt4, is_qt5 # create and mock a mouse wheel event if is_qt4: qt_event = QtGui.QWheelEvent( QtCore.QPoint(0, 0), # pos 200, # delta QtCore.Qt.NoButton, # buttons QtCore.Qt.NoModifier, # modifiers QtCore.Qt.Vertical, # orient ) elif is_qt5: qt_event = QtGui.QWheelEvent( QtCore.QPoint(0, 0), # pos self.window.control.mapToGlobal(QtCore.QPoint(0, 0)), # globalPos QtCore.QPoint(0, 200), # pixelDelta QtCore.QPoint(0, 200), # angleDelta 200, # qt4Delta QtCore.Qt.Vertical, # qt4Orietation QtCore.Qt.NoButton, # buttons QtCore.Qt.NoModifier, # modifiers QtCore.Qt.ScrollUpdate, # phase ) else: qt_event = QtGui.QWheelEvent( QtCore.QPointF(0, 0), # pos self.window.control.mapToGlobal(QtCore.QPointF( 0, 0)), # globalPos QtCore.QPoint(0, 200), # pixelDelta QtCore.QPoint(0, 200), # angleDelta QtCore.Qt.NoButton, # buttons QtCore.Qt.NoModifier, # modifiers QtCore.Qt.ScrollUpdate, # phase False, # inverted ) # dispatch event self.window._on_mouse_wheel(qt_event) # validate results self.assertEqual(self.tool.event.mouse_wheel_axis, "vertical") self.assertAlmostEqual(self.tool.event.mouse_wheel, 5.0 / 3.0) self.assertEqual(self.tool.event.mouse_wheel_delta, (0, 200)) def test_horizontal_mouse_wheel(self): from pyface.qt import QtCore, QtGui, is_qt4, is_qt5 # create and mock a mouse wheel event if is_qt4: qt_event = QtGui.QWheelEvent( QtCore.QPoint(0, 0), # pos 200, # delta QtCore.Qt.NoButton, # buttons QtCore.Qt.NoModifier, # modifiers QtCore.Qt.Horizontal, # orient ) elif is_qt5: qt_event = QtGui.QWheelEvent( QtCore.QPoint(0, 0), # pos self.window.control.mapToGlobal(QtCore.QPoint(0, 0)), # globalPos QtCore.QPoint(200, 0), # pixelDelta QtCore.QPoint(200, 0), # angleDelta 200, # qt4Delta QtCore.Qt.Horizontal, # qt4Orietation QtCore.Qt.NoButton, # buttons QtCore.Qt.NoModifier, # modifiers QtCore.Qt.ScrollUpdate, # phase ) else: qt_event = QtGui.QWheelEvent( QtCore.QPointF(0, 0), # pos self.window.control.mapToGlobal(QtCore.QPointF( 0, 0)), # globalPos QtCore.QPoint(200, 0), # pixelDelta QtCore.QPoint(200, 0), # angleDelta QtCore.Qt.NoButton, # buttons QtCore.Qt.NoModifier, # modifiers QtCore.Qt.ScrollUpdate, # phase False, # inverted ) # dispatch event self.window._on_mouse_wheel(qt_event) # validate results self.assertEqual(self.tool.event.mouse_wheel_axis, "horizontal") self.assertAlmostEqual(self.tool.event.mouse_wheel, 5.0 / 3.0) self.assertEqual(self.tool.event.mouse_wheel_delta, (200, 0)) def test_vertical_mouse_wheel_without_pixel_delta(self): from pyface.qt import QtCore, QtGui, is_qt4, is_qt5 # create and mock a mouse wheel event if is_qt4: qt_event = QtGui.QWheelEvent( QtCore.QPoint(0, 0), # pos 200, # delta QtCore.Qt.NoButton, # buttons QtCore.Qt.NoModifier, # modifiers QtCore.Qt.Vertical, # orient ) elif is_qt5: qt_event = QtGui.QWheelEvent( QtCore.QPoint(0, 0), # pos self.window.control.mapToGlobal(QtCore.QPoint(0, 0)), # globalPos QtCore.QPoint(0, 0), # pixelDelta QtCore.QPoint(0, 200), # angleDelta 200, # qt4Delta QtCore.Qt.Horizontal, # qt4Orientation QtCore.Qt.NoButton, # buttons QtCore.Qt.NoModifier, # modifiers QtCore.Qt.ScrollUpdate, # phase ) else: qt_event = QtGui.QWheelEvent( QtCore.QPointF(0, 0), # pos self.window.control.mapToGlobal(QtCore.QPointF( 0, 0)), # globalPos QtCore.QPoint(0, 0), # pixelDelta QtCore.QPoint(0, 200), # angleDelta QtCore.Qt.NoButton, # buttos QtCore.Qt.NoModifier, # modifiers QtCore.Qt.ScrollUpdate, # phase False, # inverted ) # dispatch event self.window._on_mouse_wheel(qt_event) # validate results self.assertEqual(self.tool.event.mouse_wheel_axis, "vertical") self.assertEqual(self.tool.event.mouse_wheel, 5.0 / 3.0) self.assertEqual(self.tool.event.mouse_wheel_delta, (0, 200))
class MouseWheelTestCase(TestCase): def setUp(self): # set up Enable components and tools self.container = Container(postion=[0, 0], bounds=[600, 600]) self.tool = MouseEventTool(component=self.container) self.container.tools.append(self.tool) # set up qt components self.window = Window( None, size=(600, 600), component=self.container ) # Hack: event processing code skips if window not actually shown by # testing for value of _size self.window._size = (600, 600) def test_vertical_mouse_wheel(self): from pyface.qt import QtCore, QtGui is_qt4 = (QtCore.__version_info__[0] <= 4) # create and mock a mouse wheel event if is_qt4: qt_event = QtGui.QWheelEvent( QtCore.QPoint(0, 0), 200, QtCore.Qt.NoButton, QtCore.Qt.NoModifier, QtCore.Qt.Vertical ) else: qt_event = QtGui.QWheelEvent( QtCore.QPointF(0, 0), self.window.control.mapToGlobal(QtCore.QPoint(0, 0)), QtCore.QPoint(0, 200), QtCore.QPoint(0, 200), 200, QtCore.Qt.Vertical, QtCore.Qt.NoButton, QtCore.Qt.NoModifier, QtCore.Qt.ScrollUpdate ) # dispatch event self.window._on_mouse_wheel(qt_event) # validate results self.assertEqual(self.tool.event.mouse_wheel_axis, 'vertical') self.assertAlmostEqual(self.tool.event.mouse_wheel, 5.0/3.0) self.assertEqual(self.tool.event.mouse_wheel_delta, (0, 200)) def test_horizontal_mouse_wheel(self): from pyface.qt import QtCore, QtGui is_qt4 = (QtCore.__version_info__[0] <= 4) # create and mock a mouse wheel event if is_qt4: qt_event = QtGui.QWheelEvent( QtCore.QPoint(0, 0), 200, QtCore.Qt.NoButton, QtCore.Qt.NoModifier, QtCore.Qt.Horizontal ) else: qt_event = QtGui.QWheelEvent( QtCore.QPoint(0, 0), self.window.control.mapToGlobal(QtCore.QPoint(0, 0)), QtCore.QPoint(200, 0), QtCore.QPoint(200, 0), 200, QtCore.Qt.Vertical, QtCore.Qt.NoButton, QtCore.Qt.NoModifier, QtCore.Qt.ScrollUpdate ) # dispatch event self.window._on_mouse_wheel(qt_event) # validate results self.assertEqual(self.tool.event.mouse_wheel_axis, 'horizontal') self.assertAlmostEqual(self.tool.event.mouse_wheel, 5.0/3.0) self.assertEqual(self.tool.event.mouse_wheel_delta, (200, 0)) def test_vertical_mouse_wheel_without_pixel_delta(self): from pyface.qt import QtCore, QtGui is_qt4 = (QtCore.__version_info__[0] <= 4) if is_qt4: self.skipTest("Not directly applicable in Qt4") # create and mock a mouse wheel event qt_event = QtGui.QWheelEvent( QtCore.QPointF(0, 0), self.window.control.mapToGlobal(QtCore.QPoint(0, 0)), QtCore.QPoint(0, 0), QtCore.QPoint(0, 200), 200, QtCore.Qt.Vertical, QtCore.Qt.NoButton, QtCore.Qt.NoModifier, QtCore.Qt.ScrollUpdate ) # dispatch event self.window._on_mouse_wheel(qt_event) # validate results self.assertEqual(self.tool.event.mouse_wheel_axis, 'vertical') self.assertEqual(self.tool.event.mouse_wheel, 5.0/3.0) self.assertEqual(self.tool.event.mouse_wheel_delta, (0, 200))