diff options
Diffstat (limited to 'deluge/conftest.py')
-rw-r--r-- | deluge/conftest.py | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/deluge/conftest.py b/deluge/conftest.py index d394a27..c307014 100644 --- a/deluge/conftest.py +++ b/deluge/conftest.py @@ -12,7 +12,7 @@ import pytest import pytest_twisted from twisted.internet import reactor from twisted.internet.defer import Deferred, maybeDeferred -from twisted.internet.error import CannotListenError +from twisted.internet.error import CannotListenError, ProcessTerminated from twisted.python.failure import Failure import deluge.component as _component @@ -42,11 +42,13 @@ def mock_callback(): The returned Mock instance will have a `deferred` attribute which will complete when the callback has been called. """ - def reset(): + def reset(timeout=0.5, *args, **kwargs): if mock.called: - original_reset_mock() - deferred = Deferred() - deferred.addTimeout(0.5, reactor) + original_reset_mock(*args, **kwargs) + if mock.deferred: + mock.deferred.cancel() + deferred = Deferred(canceller=lambda x: deferred.callback(None)) + deferred.addTimeout(timeout, reactor) mock.side_effect = lambda *args, **kw: deferred.callback((args, kw)) mock.deferred = deferred @@ -118,7 +120,10 @@ async def daemon(request, config_dir, tmp_path): raise exception_error daemon.listen_port = listen_port yield daemon - await daemon.kill() + try: + await daemon.kill() + except ProcessTerminated: + pass @pytest.fixture(autouse=True) |