summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2020-11-24 18:48:19 +0100
committerFlorian Bruhin <me@the-compiler.org>2020-11-24 18:48:19 +0100
commit19586576c5ed5cfc82439dc5f5a4123fbd9e8d91 (patch)
tree8df12871702cba5ad038041dc784848eabd37589
parent6eb9f10c7eed63852b5d9b52e8d2d0672f4b221b (diff)
downloadqutebrowser-19586576c5ed5cfc82439dc5f5a4123fbd9e8d91.tar.gz
qutebrowser-19586576c5ed5cfc82439dc5f5a4123fbd9e8d91.zip
Revert "Work around PyQt 5.15.1 waitSignals issues"
This reverts commit b55675ad4afe12be7e4a4f39960bb58818c502f8.
-rw-r--r--tests/unit/browser/webkit/network/test_networkreply.py7
-rw-r--r--tests/unit/completion/test_completionmodel.py4
-rw-r--r--tests/unit/config/test_config.py7
-rw-r--r--tests/unit/keyinput/test_basekeyparser.py4
-rw-r--r--tests/unit/misc/test_guiprocess.py29
-rw-r--r--tests/unit/misc/test_ipc.py8
-rw-r--r--tests/unit/utils/usertypes/test_question.py14
7 files changed, 34 insertions, 39 deletions
diff --git a/tests/unit/browser/webkit/network/test_networkreply.py b/tests/unit/browser/webkit/network/test_networkreply.py
index 0aa3943e7..e1c9d04f8 100644
--- a/tests/unit/browser/webkit/network/test_networkreply.py
+++ b/tests/unit/browser/webkit/network/test_networkreply.py
@@ -52,9 +52,8 @@ class TestFixedDataNetworkReply:
b'Hello World! This is a test.'])
def test_data(self, qtbot, req, data):
reply = networkreply.FixedDataNetworkReply(req, data, 'test/foo')
- with qtbot.waitSignal(reply.metaDataChanged), \
- qtbot.waitSignal(reply.readyRead), \
- qtbot.waitSignal(reply.finished):
+ with qtbot.waitSignals([reply.metaDataChanged, reply.readyRead,
+ reply.finished], order='strict'):
pass
assert reply.bytesAvailable() == len(data)
@@ -79,7 +78,7 @@ def test_error_network_reply(qtbot, req):
reply = networkreply.ErrorNetworkReply(
req, "This is an error", QNetworkReply.UnknownNetworkError)
- with qtbot.waitSignal(reply.error), qtbot.waitSignal(reply.finished):
+ with qtbot.waitSignals([reply.error, reply.finished], order='strict'):
pass
reply.abort() # shouldn't do anything
diff --git a/tests/unit/completion/test_completionmodel.py b/tests/unit/completion/test_completionmodel.py
index 1fc0b4d73..98e70dc01 100644
--- a/tests/unit/completion/test_completionmodel.py
+++ b/tests/unit/completion/test_completionmodel.py
@@ -77,8 +77,8 @@ def test_set_pattern(pat, qtbot):
for c in cats:
c.set_pattern = mock.Mock(spec=[])
model.add_category(c)
- with qtbot.waitSignal(model.layoutAboutToBeChanged), \
- qtbot.waitSignal(model.layoutChanged):
+ with qtbot.waitSignals([model.layoutAboutToBeChanged, model.layoutChanged],
+ order='strict'):
model.set_pattern(pat)
for c in cats:
c.set_pattern.assert_called_with(pat)
diff --git a/tests/unit/config/test_config.py b/tests/unit/config/test_config.py
index 588e4a5cf..b30ab4bee 100644
--- a/tests/unit/config/test_config.py
+++ b/tests/unit/config/test_config.py
@@ -432,12 +432,11 @@ class TestConfig:
assert conf.get_obj(name1) == 'never'
assert conf.get_obj(name2) is True
- with qtbot.waitSignal(conf.changed), qtbot.waitSignal(conf.changed):
+ with qtbot.waitSignals([conf.changed, conf.changed]) as blocker:
conf.clear(save_yaml=save_yaml)
- # Doesn't work with PyQt 5.15.1 workaround
- # options = {blocker1.args[0], blocker2.args[0]}
- # assert options == {name1, name2}
+ options = {e.args[0] for e in blocker.all_signals_and_args}
+ assert options == {name1, name2}
if save_yaml:
assert yaml_value(name1) is usertypes.UNSET
diff --git a/tests/unit/keyinput/test_basekeyparser.py b/tests/unit/keyinput/test_basekeyparser.py
index 88d9ae66c..cd57d33cb 100644
--- a/tests/unit/keyinput/test_basekeyparser.py
+++ b/tests/unit/keyinput/test_basekeyparser.py
@@ -21,7 +21,7 @@
from unittest import mock
-from PyQt5.QtCore import Qt, PYQT_VERSION
+from PyQt5.QtCore import Qt
import pytest
from qutebrowser.keyinput import basekeyparser, keyutils
@@ -305,8 +305,6 @@ class TestCount:
# https://github.com/qutebrowser/qutebrowser/issues/3743
handle_text(prompt_keyparser, Qt.Key_twosuperior, Qt.Key_B, Qt.Key_A)
- @pytest.mark.skipif(PYQT_VERSION == 0x050F01,
- reason='waitSignals is broken in PyQt 5.15.1')
def test_count_keystring_update(self, qtbot,
handle_text, prompt_keyparser):
"""Make sure the keystring is updated correctly when entering count."""
diff --git a/tests/unit/misc/test_guiprocess.py b/tests/unit/misc/test_guiprocess.py
index 7e71478ce..4ed19f64e 100644
--- a/tests/unit/misc/test_guiprocess.py
+++ b/tests/unit/misc/test_guiprocess.py
@@ -54,8 +54,8 @@ def fake_proc(monkeypatch, stubs):
def test_start(proc, qtbot, message_mock, py_proc):
"""Test simply starting a process."""
- with qtbot.waitSignal(proc.started, timeout=10000), \
- qtbot.waitSignal(proc.finished, timeout=10000):
+ with qtbot.waitSignals([proc.started, proc.finished], timeout=10000,
+ order='strict'):
argv = py_proc("import sys; print('test'); sys.exit(0)")
proc.start(*argv)
@@ -70,8 +70,8 @@ def test_start_verbose(proc, qtbot, message_mock, py_proc):
"""Test starting a process verbosely."""
proc.verbose = True
- with qtbot.waitSignal(proc.started, timeout=10000), \
- qtbot.waitSignal(proc.finished, timeout=10000):
+ with qtbot.waitSignals([proc.started, proc.finished], timeout=10000,
+ order='strict'):
argv = py_proc("import sys; print('test'); sys.exit(0)")
proc.start(*argv)
@@ -99,8 +99,9 @@ def test_start_output_message(proc, qtbot, caplog, message_mock, py_proc,
code.append("sys.exit(0)")
with caplog.at_level(logging.ERROR, 'message'):
- with qtbot.waitSignal(proc.started, timeout=10000), \
- qtbot.waitSignal(proc.finished, timeout=10000):
+ with qtbot.waitSignals([proc.started, proc.finished],
+ timeout=10000,
+ order='strict'):
argv = py_proc(';'.join(code))
proc.start(*argv)
@@ -146,8 +147,8 @@ def test_start_env(monkeypatch, qtbot, py_proc):
sys.exit(0)
""")
- with qtbot.waitSignal(proc.started, timeout=10000), \
- qtbot.waitSignal(proc.finished, timeout=10000):
+ with qtbot.waitSignals([proc.started, proc.finished], timeout=10000,
+ order='strict'):
proc.start(*argv)
data = qutescheme.spawn_output
@@ -186,12 +187,12 @@ def test_double_start(qtbot, proc, py_proc):
def test_double_start_finished(qtbot, proc, py_proc):
"""Test starting a GUIProcess twice (with the first call finished)."""
- with qtbot.waitSignal(proc.started, timeout=10000), \
- qtbot.waitSignal(proc.finished, timeout=10000):
+ with qtbot.waitSignals([proc.started, proc.finished], timeout=10000,
+ order='strict'):
argv = py_proc("import sys; sys.exit(0)")
proc.start(*argv)
- with qtbot.waitSignal(proc.started, timeout=10000), \
- qtbot.waitSignal(proc.finished, timeout=10000):
+ with qtbot.waitSignals([proc.started, proc.finished], timeout=10000,
+ order='strict'):
argv = py_proc("import sys; sys.exit(0)")
proc.start(*argv)
@@ -266,8 +267,8 @@ def test_exit_successful_output(qtbot, proc, py_proc, stream):
def test_stdout_not_decodable(proc, qtbot, message_mock, py_proc):
"""Test handling malformed utf-8 in stdout."""
- with qtbot.waitSignal(proc.started, timeout=10000), \
- qtbot.waitSignal(proc.finished, timeout=10000):
+ with qtbot.waitSignals([proc.started, proc.finished], timeout=10000,
+ order='strict'):
argv = py_proc(r"""
import sys
# Using \x81 because it's invalid in UTF-8 and CP1252
diff --git a/tests/unit/misc/test_ipc.py b/tests/unit/misc/test_ipc.py
index 2c9f7ea7f..3f53ca238 100644
--- a/tests/unit/misc/test_ipc.py
+++ b/tests/unit/misc/test_ipc.py
@@ -493,10 +493,10 @@ NEW_VERSION = str(ipc.PROTOCOL_VERSION + 1).encode('utf-8')
(b'{"args": [], "target_arg": null}\n', 'invalid version'),
])
def test_invalid_data(qtbot, ipc_server, connected_socket, caplog, data, msg):
+ signals = [ipc_server.got_invalid_data, connected_socket.disconnected]
with caplog.at_level(logging.ERROR):
with qtbot.assertNotEmitted(ipc_server.got_args):
- with qtbot.waitSignal(ipc_server.got_invalid_data), \
- qtbot.waitSignal(connected_socket.disconnected):
+ with qtbot.waitSignals(signals, order='strict'):
connected_socket.write(data)
invalid_msg = 'Ignoring invalid IPC data from socket '
@@ -514,8 +514,8 @@ def test_multiline(qtbot, ipc_server, connected_socket):
version=ipc.PROTOCOL_VERSION))
with qtbot.assertNotEmitted(ipc_server.got_invalid_data):
- with qtbot.waitSignal(ipc_server.got_args), \
- qtbot.waitSignal(ipc_server.got_args):
+ with qtbot.waitSignals([ipc_server.got_args, ipc_server.got_args],
+ order='strict'):
connected_socket.write(data.encode('utf-8'))
assert len(spy) == 2
diff --git a/tests/unit/utils/usertypes/test_question.py b/tests/unit/utils/usertypes/test_question.py
index 014ef7f0c..59c3f7d43 100644
--- a/tests/unit/utils/usertypes/test_question.py
+++ b/tests/unit/utils/usertypes/test_question.py
@@ -53,25 +53,23 @@ def test_done(mode, answer, signal_names, question, qtbot):
question.mode = mode
question.answer = answer
signals = [getattr(question, name) for name in signal_names]
- blockers = [qtbot.waitSignal(signal) for signal in signals]
-
- question.done()
- for blocker in blockers:
- blocker.wait()
-
+ with qtbot.waitSignals(signals, order='strict'):
+ question.done()
assert not question.is_aborted
def test_cancel(question, qtbot):
"""Test Question.cancel()."""
- with qtbot.waitSignal(question.cancelled), qtbot.waitSignal(question.completed):
+ with qtbot.waitSignals([question.cancelled, question.completed],
+ order='strict'):
question.cancel()
assert not question.is_aborted
def test_abort(question, qtbot):
"""Test Question.abort()."""
- with qtbot.waitSignal(question.aborted), qtbot.waitSignal(question.completed):
+ with qtbot.waitSignals([question.aborted, question.completed],
+ order='strict'):
question.abort()
assert question.is_aborted