@@ -46,7 +46,7 @@ def context_manager_wait(qtbot, signal, timeout):
46
46
(context_manager_wait , 500 , None , True ),
47
47
(explicit_wait , 2000 , 500 , False ),
48
48
(context_manager_wait , 2000 , 500 , False ),
49
- ]
49
+ ] * 2 # Running all tests twice to catch a QTimer segfault, see #42/#43.
50
50
)
51
51
def test_signal_triggered (qtbot , wait_function , emit_delay , timeout ,
52
52
expected_signal_triggered ):
@@ -55,7 +55,10 @@ def test_signal_triggered(qtbot, wait_function, emit_delay, timeout,
55
55
the expected results.
56
56
"""
57
57
signaller = Signaller ()
58
- QtCore .QTimer .singleShot (emit_delay , signaller .signal .emit )
58
+ timer = QtCore .QTimer ()
59
+ timer .setSingleShot (True )
60
+ timer .timeout .connect (signaller .signal .emit )
61
+ timer .start (emit_delay )
59
62
60
63
# block signal until either signal is emitted or timeout is reached
61
64
start_time = time .time ()
@@ -83,4 +86,4 @@ def test_explicit_emit(qtbot):
83
86
with qtbot .waitSignal (signaller .signal , timeout = 5000 ) as waiting :
84
87
signaller .signal .emit ()
85
88
86
- assert waiting .signal_triggered
89
+ assert waiting .signal_triggered
0 commit comments