Try different workaround for test_ipc issues.

This commit is contained in:
Florian Bruhin 2015-09-03 06:12:36 +02:00
parent 154c380fd0
commit efe40fa7e0
2 changed files with 5 additions and 3 deletions

View File

@ -140,6 +140,10 @@ class IPCServer(QObject):
@pyqtSlot(int) @pyqtSlot(int)
def on_error(self, err): def on_error(self, err):
"""Convenience method which calls _socket_error on an error.""" """Convenience method which calls _socket_error on an error."""
if self._socket is None:
# Sometimes this gets called from stale sockets, especially in
# tests.
return
self._timer.stop() self._timer.stop()
log.ipc.debug("Socket error {}: {}".format( log.ipc.debug("Socket error {}: {}".format(
self._socket.error(), self._socket.errorString())) self._socket.error(), self._socket.errorString()))

View File

@ -59,15 +59,13 @@ def qlocalserver(qapp):
@pytest.yield_fixture @pytest.yield_fixture
def qlocalsocket(qapp, qtbot): def qlocalsocket(qapp):
socket = QLocalSocket() socket = QLocalSocket()
yield socket yield socket
socket.disconnectFromServer() socket.disconnectFromServer()
if socket.state() != QLocalSocket.UnconnectedState: if socket.state() != QLocalSocket.UnconnectedState:
disconnected = socket.waitForDisconnected(100) disconnected = socket.waitForDisconnected(100)
assert disconnected assert disconnected
with qtbot.waitSignal(socket.destroyed, raising=False):
socket.deleteLater()
class FakeSocket(QObject): class FakeSocket(QObject):