1+ from collections .abc import Callable
12import contextlib
23from types import TracebackType
34import weakref
45import warnings
56from typing import (
67 TYPE_CHECKING ,
7- Callable ,
88 Generator ,
99 Iterator ,
10- List ,
1110 Literal ,
1211 Optional ,
1312 Any ,
14- Type ,
1513 cast ,
1614)
1715from pathlib import Path
16+ import pytest
1817from typing_extensions import Self , TypeAlias
1918
2019from pytestqt .exceptions import TimeoutError , ScreenshotError
@@ -403,11 +402,11 @@ def waitSignal(
403402
404403 def waitSignals (
405404 self ,
406- signals : List [SignalInstance ],
405+ signals : list [SignalInstance ],
407406 * ,
408407 timeout : int = 5000 ,
409408 raising : Optional [bool ] = None ,
410- check_params_cbs : Optional [List [CheckParamsCb ]] = None ,
409+ check_params_cbs : Optional [list [CheckParamsCb ]] = None ,
411410 order : WaitSignalsOrder = "none" ,
412411 ) -> "MultiSignalBlocker" :
413412 """
@@ -782,7 +781,7 @@ def mouseRelease(*args, **kwargs):
782781
783782
784783def _add_widget (
785- item : Any ,
784+ item : pytest . Item ,
786785 widget : QWidget ,
787786 * ,
788787 before_close_func : Optional [BeforeCloseFunc ] = None ,
@@ -792,40 +791,47 @@ def _add_widget(
792791 """
793792 qt_widgets = getattr (item , "qt_widgets" , [])
794793 qt_widgets .append ((weakref .ref (widget ), before_close_func ))
795- item .qt_widgets = qt_widgets
794+ item .qt_widgets = qt_widgets # type: ignore[assignment]
796795
797796
798- def _close_widgets (item : Any ) -> None :
797+ def _close_widgets (item : pytest . Item ) -> None :
799798 """
800799 Close all widgets registered in the pytest item.
801800 """
802801 widgets = getattr (item , "qt_widgets" , None )
803802 if widgets :
804- for w , before_close_func in item .qt_widgets :
803+ for w , before_close_func in item .qt_widgets : # type: ignore[attr-defined]
805804 w = w ()
806805 if w is not None :
807806 if before_close_func is not None :
808807 before_close_func (w )
809808 w .close ()
810809 w .deleteLater ()
811- del item .qt_widgets
810+ del item .qt_widgets # type: ignore[attr-defined]
812811
813812
814- def _iter_widgets (item : Any ) -> Iterator [weakref .ReferenceType [QWidget ]]:
813+ def _iter_widgets (item : pytest . Item ) -> Iterator [weakref .ReferenceType [QWidget ]]:
815814 """
816815 Iterates over widgets registered in the given pytest item.
817816 """
818817 qt_widgets = getattr (item , "qt_widgets" , [])
819818 return (w for (w , _ ) in qt_widgets )
820819
821820
821+ WaitAdjectiveName = Literal ["activated" , "exposed" ]
822+
823+
822824class _WaitWidgetContextManager :
823825 """
824826 Context manager implementation used by ``waitActive`` and ``waitExposed`` methods.
825827 """
826828
827829 def __init__ (
828- self , method_name : str , adjective_name : str , widget : QWidget , timeout : int
830+ self ,
831+ method_name : str ,
832+ adjective_name : WaitAdjectiveName ,
833+ widget : QWidget ,
834+ timeout : int ,
829835 ) -> None :
830836 """
831837 :param str method_name: name to the ``QtTest`` method to call to check if widget is active/exposed.
@@ -844,7 +850,7 @@ def __enter__(self) -> Self:
844850
845851 def __exit__ (
846852 self ,
847- exc_type : Optional [Type [BaseException ]],
853+ exc_type : Optional [type [BaseException ]],
848854 exc_val : Optional [BaseException ],
849855 exc_tb : Optional [TracebackType ],
850856 ) -> None :
0 commit comments