summaryrefslogtreecommitdiffstats
path: root/deluge/conftest.py
diff options
context:
space:
mode:
Diffstat (limited to 'deluge/conftest.py')
-rw-r--r--deluge/conftest.py17
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)