1
+ from collections .abc import Callable
1
2
import contextlib
2
3
from types import TracebackType
3
4
import weakref
4
5
import warnings
5
6
from typing import (
6
7
TYPE_CHECKING ,
7
- Callable ,
8
8
Generator ,
9
9
Iterator ,
10
- List ,
11
10
Literal ,
12
11
Optional ,
13
12
Any ,
14
- Type ,
15
13
cast ,
16
14
)
17
15
from pathlib import Path
16
+ import pytest
18
17
from typing_extensions import Self , TypeAlias
19
18
20
19
from pytestqt .exceptions import TimeoutError , ScreenshotError
@@ -403,11 +402,11 @@ def waitSignal(
403
402
404
403
def waitSignals (
405
404
self ,
406
- signals : List [SignalInstance ],
405
+ signals : list [SignalInstance ],
407
406
* ,
408
407
timeout : int = 5000 ,
409
408
raising : Optional [bool ] = None ,
410
- check_params_cbs : Optional [List [CheckParamsCb ]] = None ,
409
+ check_params_cbs : Optional [list [CheckParamsCb ]] = None ,
411
410
order : WaitSignalsOrder = "none" ,
412
411
) -> "MultiSignalBlocker" :
413
412
"""
@@ -782,7 +781,7 @@ def mouseRelease(*args, **kwargs):
782
781
783
782
784
783
def _add_widget (
785
- item : Any ,
784
+ item : pytest . Item ,
786
785
widget : QWidget ,
787
786
* ,
788
787
before_close_func : Optional [BeforeCloseFunc ] = None ,
@@ -792,40 +791,47 @@ def _add_widget(
792
791
"""
793
792
qt_widgets = getattr (item , "qt_widgets" , [])
794
793
qt_widgets .append ((weakref .ref (widget ), before_close_func ))
795
- item .qt_widgets = qt_widgets
794
+ item .qt_widgets = qt_widgets # type: ignore[assignment]
796
795
797
796
798
- def _close_widgets (item : Any ) -> None :
797
+ def _close_widgets (item : pytest . Item ) -> None :
799
798
"""
800
799
Close all widgets registered in the pytest item.
801
800
"""
802
801
widgets = getattr (item , "qt_widgets" , None )
803
802
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]
805
804
w = w ()
806
805
if w is not None :
807
806
if before_close_func is not None :
808
807
before_close_func (w )
809
808
w .close ()
810
809
w .deleteLater ()
811
- del item .qt_widgets
810
+ del item .qt_widgets # type: ignore[attr-defined]
812
811
813
812
814
- def _iter_widgets (item : Any ) -> Iterator [weakref .ReferenceType [QWidget ]]:
813
+ def _iter_widgets (item : pytest . Item ) -> Iterator [weakref .ReferenceType [QWidget ]]:
815
814
"""
816
815
Iterates over widgets registered in the given pytest item.
817
816
"""
818
817
qt_widgets = getattr (item , "qt_widgets" , [])
819
818
return (w for (w , _ ) in qt_widgets )
820
819
821
820
821
+ WaitAdjectiveName = Literal ["activated" , "exposed" ]
822
+
823
+
822
824
class _WaitWidgetContextManager :
823
825
"""
824
826
Context manager implementation used by ``waitActive`` and ``waitExposed`` methods.
825
827
"""
826
828
827
829
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 ,
829
835
) -> None :
830
836
"""
831
837
: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:
844
850
845
851
def __exit__ (
846
852
self ,
847
- exc_type : Optional [Type [BaseException ]],
853
+ exc_type : Optional [type [BaseException ]],
848
854
exc_val : Optional [BaseException ],
849
855
exc_tb : Optional [TracebackType ],
850
856
) -> None :
0 commit comments