tests: Base FakeProcess on a real QProcess
This way we can e.g. use the finished signal
This commit is contained in:
parent
dd767cbcb7
commit
577a653d94
|
|
@ -30,7 +30,7 @@ import builtins
|
|||
import importlib
|
||||
import types
|
||||
|
||||
from PyQt5.QtCore import pyqtSignal, QPoint, QProcess, QObject, QUrl
|
||||
from PyQt5.QtCore import pyqtSignal, QPoint, QProcess, QObject, QUrl, QByteArray
|
||||
from PyQt5.QtGui import QIcon
|
||||
from PyQt5.QtNetwork import (QNetworkRequest, QAbstractNetworkCache,
|
||||
QNetworkCacheMetaData)
|
||||
|
|
@ -193,13 +193,18 @@ class FakeNetworkReply:
|
|||
self.headers[key] = value
|
||||
|
||||
|
||||
def fake_qprocess():
|
||||
"""Factory for a QProcess mock which has the QProcess enum values."""
|
||||
m = mock.Mock(spec=QProcess)
|
||||
for name in ['NormalExit', 'CrashExit', 'FailedToStart', 'Crashed',
|
||||
'Timedout', 'WriteError', 'ReadError', 'UnknownError']:
|
||||
setattr(m, name, getattr(QProcess, name))
|
||||
return m
|
||||
class FakeProcess(QProcess):
|
||||
|
||||
def __init__(self, parent: QObject = None) -> None:
|
||||
super().__init__(parent)
|
||||
self.start = mock.Mock(spec=QProcess.start)
|
||||
self.startDetached = mock.Mock(spec=QProcess.startDetached)
|
||||
self.readAllStandardOutput = mock.Mock(
|
||||
spec=QProcess.readAllStandardOutput, return_value=QByteArray(b''))
|
||||
self.readAllStandardError = mock.Mock(
|
||||
spec=QProcess.readAllStandardError, return_value=QByteArray(b''))
|
||||
self.terminate = mock.Mock(spec=QProcess.terminate)
|
||||
self.kill = mock.Mock(spec=QProcess.kill)
|
||||
|
||||
|
||||
class FakeWebTabScroller(browsertab.AbstractScroller):
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ def proc(qtbot, caplog):
|
|||
def fake_proc(monkeypatch, stubs):
|
||||
"""A fixture providing a GUIProcess with a mocked QProcess."""
|
||||
p = guiprocess.GUIProcess('testprocess')
|
||||
monkeypatch.setattr(p, '_proc', stubs.fake_qprocess())
|
||||
monkeypatch.setattr(p, '_proc', stubs.FakeProcess())
|
||||
return p
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue