diff --git a/.github/workflows/test_and_deploy.yml b/.github/workflows/test_and_deploy.yml index 068783c..8259c29 100644 --- a/.github/workflows/test_and_deploy.yml +++ b/.github/workflows/test_and_deploy.yml @@ -70,9 +70,6 @@ jobs: - python-version: 3.8 platform: ubuntu-18.04 backend: pyside2 - - python-version: 3.6 - platform: windows-2016 - backend: pyqt5 # legacy Qt - python-version: 3.7 diff --git a/tests/test_sliders/_testutil.py b/tests/test_sliders/_testutil.py index b26dafb..150e3fd 100644 --- a/tests/test_sliders/_testutil.py +++ b/tests/test_sliders/_testutil.py @@ -4,7 +4,7 @@ from platform import system import pytest from qtpy import QT_VERSION from qtpy.QtCore import QEvent, QPoint, QPointF, Qt -from qtpy.QtGui import QMouseEvent, QWheelEvent +from qtpy.QtGui import QHoverEvent, QMouseEvent, QWheelEvent QT_VERSION = tuple(int(x) for x in QT_VERSION.split(".")) @@ -68,6 +68,17 @@ def _wheel_event(arc): ) +def _hover_event(_type, position, old_position, widget=None): + with suppress(TypeError): + return QHoverEvent( + _type, + position, + widget.mapToGlobal(position), + old_position, + ) + return QHoverEvent(_type, position, old_position) + + def _linspace(start, stop, n): h = (stop - start) / (n - 1) for i in range(n): diff --git a/tests/test_sliders/test_generic_slider.py b/tests/test_sliders/test_generic_slider.py index 6fe16bc..56f0231 100644 --- a/tests/test_sliders/test_generic_slider.py +++ b/tests/test_sliders/test_generic_slider.py @@ -3,12 +3,17 @@ import platform import pytest from qtpy.QtCore import QEvent, QPoint, QPointF, Qt -from qtpy.QtGui import QHoverEvent from qtpy.QtWidgets import QStyle, QStyleOptionSlider from superqt.sliders._generic_slider import _GenericSlider, _sliderValueFromPosition -from ._testutil import _linspace, _mouse_event, _wheel_event, skip_on_linux_qt6 +from ._testutil import ( + _hover_event, + _linspace, + _mouse_event, + _wheel_event, + skip_on_linux_qt6, +) @pytest.fixture(params=[Qt.Orientation.Horizontal, Qt.Orientation.Vertical]) @@ -118,6 +123,7 @@ def test_press_move_release(gslider: _GenericSlider, qtbot): @skip_on_linux_qt6 def test_hover(gslider: _GenericSlider): + # stub opt = QStyleOptionSlider() gslider.initStyleOption(opt) style = gslider.style() @@ -128,11 +134,11 @@ def test_hover(gslider: _GenericSlider): assert gslider._hoverControl == QStyle.SubControl.SC_None - gslider.event(QHoverEvent(QEvent.Type.HoverEnter, handle_pos, QPointF())) + gslider.event(_hover_event(QEvent.Type.HoverEnter, handle_pos, QPointF(), gslider)) assert gslider._hoverControl == QStyle.SubControl.SC_SliderHandle gslider.event( - QHoverEvent(QEvent.Type.HoverLeave, QPointF(-1000, -1000), handle_pos) + _hover_event(QEvent.Type.HoverLeave, QPointF(-1000, -1000), handle_pos, gslider) ) assert gslider._hoverControl == QStyle.SubControl.SC_None diff --git a/tests/test_sliders/test_range_slider.py b/tests/test_sliders/test_range_slider.py index da2b36a..aa2a6b9 100644 --- a/tests/test_sliders/test_range_slider.py +++ b/tests/test_sliders/test_range_slider.py @@ -2,12 +2,17 @@ import math import pytest from qtpy.QtCore import QEvent, QPoint, QPointF, Qt -from qtpy.QtGui import QHoverEvent from qtpy.QtWidgets import QStyle, QStyleOptionSlider from superqt import QDoubleRangeSlider, QRangeSlider -from ._testutil import _linspace, _mouse_event, _wheel_event, skip_on_linux_qt6 +from ._testutil import ( + _hover_event, + _linspace, + _mouse_event, + _wheel_event, + skip_on_linux_qt6, +) @pytest.fixture(params=[Qt.Orientation.Horizontal, Qt.Orientation.Vertical]) @@ -153,11 +158,11 @@ def test_hover(gslider: QRangeSlider): assert gslider._hoverControl == QStyle.SubControl.SC_None - gslider.event(QHoverEvent(QEvent.Type.HoverEnter, handle_pos, QPointF())) + gslider.event(_hover_event(QEvent.Type.HoverEnter, handle_pos, QPointF(), gslider)) assert gslider._hoverControl == QStyle.SubControl.SC_SliderHandle gslider.event( - QHoverEvent(QEvent.Type.HoverLeave, QPointF(-1000, -1000), handle_pos) + _hover_event(QEvent.Type.HoverLeave, QPointF(-1000, -1000), handle_pos, gslider) ) assert gslider._hoverControl == QStyle.SubControl.SC_None diff --git a/tests/test_sliders/test_single_value_sliders.py b/tests/test_sliders/test_single_value_sliders.py index c5aebe7..437f832 100644 --- a/tests/test_sliders/test_single_value_sliders.py +++ b/tests/test_sliders/test_single_value_sliders.py @@ -4,7 +4,6 @@ from contextlib import suppress import pytest from qtpy.QtCore import QEvent, QPoint, QPointF, Qt -from qtpy.QtGui import QHoverEvent from qtpy.QtWidgets import QSlider, QStyle, QStyleOptionSlider from superqt import QDoubleSlider, QLabeledDoubleSlider, QLabeledSlider @@ -12,6 +11,7 @@ from superqt.sliders._generic_slider import _GenericSlider from ._testutil import ( QT_VERSION, + _hover_event, _linspace, _mouse_event, _wheel_event, @@ -167,12 +167,12 @@ def test_hover(sld: _GenericSlider): with suppress(AttributeError): # for QSlider assert _real_sld._hoverControl == QStyle.SubControl.SC_None - _real_sld.event(QHoverEvent(QEvent.Type.HoverEnter, handle_pos, QPointF())) + _real_sld.event(_hover_event(QEvent.Type.HoverEnter, handle_pos, QPointF(), sld)) with suppress(AttributeError): # for QSlider assert _real_sld._hoverControl == QStyle.SubControl.SC_SliderHandle _real_sld.event( - QHoverEvent(QEvent.Type.HoverLeave, QPointF(-1000, -1000), handle_pos) + _hover_event(QEvent.Type.HoverLeave, QPointF(-1000, -1000), handle_pos, sld) ) with suppress(AttributeError): # for QSlider assert _real_sld._hoverControl == QStyle.SubControl.SC_None