diff --git a/deluge/conftest.py b/deluge/conftest.py index 55c50a42d..51acc6a12 100644 --- a/deluge/conftest.py +++ b/deluge/conftest.py @@ -137,7 +137,7 @@ def common_fixture(config_dir, request, monkeypatch, listen_port): @pytest_twisted.async_yield_fixture(scope='function') -async def component(request): +async def component(): """Verify component registry is clean, and clean up after test.""" if len(_component._ComponentRegistry.components) != 0: warnings.warn( diff --git a/deluge/plugins/Stats/deluge_stats/tests/test_stats.py b/deluge/plugins/Stats/deluge_stats/tests/test_stats.py index 9c66ee107..4aefc509d 100644 --- a/deluge/plugins/Stats/deluge_stats/tests/test_stats.py +++ b/deluge/plugins/Stats/deluge_stats/tests/test_stats.py @@ -7,7 +7,6 @@ import pytest import pytest_twisted from twisted.internet import defer -import deluge.component as component from deluge.common import fsize, fspeed from deluge.ui.client import client @@ -21,17 +20,15 @@ def print_totals(totals): print('down:', fsize(totals['total_download'] - totals['total_payload_download'])) -@pytest.mark.usefixtures('component') class TestStatsPlugin: @pytest_twisted.async_yield_fixture(autouse=True) - async def set_up(self): + async def set_up(self, component): defer.setDebugging(True) client.start_standalone() client.core.enable_plugin('Stats') await component.start() yield client.stop_standalone() - await component.shutdown() @defer.inlineCallbacks def test_client_totals(self): diff --git a/deluge/plugins/WebUi/deluge_webui/tests/test_plugin_webui.py b/deluge/plugins/WebUi/deluge_webui/tests/test_plugin_webui.py index 1badedca0..413d25925 100644 --- a/deluge/plugins/WebUi/deluge_webui/tests/test_plugin_webui.py +++ b/deluge/plugins/WebUi/deluge_webui/tests/test_plugin_webui.py @@ -8,7 +8,6 @@ import pytest import pytest_twisted -import deluge.component as component from deluge.core.core import Core from deluge.core.rpcserver import RPCServer from deluge.tests import common @@ -16,10 +15,9 @@ from deluge.tests import common common.disable_new_release_check() -@pytest.mark.usefixtures('component') class TestWebUIPlugin: @pytest_twisted.async_yield_fixture(autouse=True) - async def set_up(self, request): + async def set_up(self, request, component): self = request.instance self.rpcserver = RPCServer(listen=False) self.core = Core() @@ -27,11 +25,9 @@ class TestWebUIPlugin: yield - def on_shutdown(result): - del self.rpcserver - del self.core - - await component.shutdown().addCallback(on_shutdown) + await component.shutdown() + del self.rpcserver + del self.core def test_enable_webui(self): if 'WebUi' not in self.core.get_available_plugins(): diff --git a/deluge/plugins/pluginbase.py b/deluge/plugins/pluginbase.py index 58162feab..8d5515690 100644 --- a/deluge/plugins/pluginbase.py +++ b/deluge/plugins/pluginbase.py @@ -34,7 +34,10 @@ class CorePluginBase(PluginBase): log.debug('CorePlugin initialized..') def __del__(self): - component.get('RPCServer').deregister_object(self) + try: + component.get('RPCServer').deregister_object(self) + except KeyError: + log.debug('RPCServer already deregistered') def enable(self): super().enable() diff --git a/pyproject.toml b/pyproject.toml index 500b285e4..0449619d6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,6 +23,8 @@ markers = [ ] filterwarnings = [ "ignore::DeprecationWarning:gi", - "ignore::DeprecationWarning:twisted.internet.gireactor:43", + "ignore::DeprecationWarning:twisted.internet.gireactor", "ignore:twisted.web.resource.*:DeprecationWarning", + "ignore:Using readBody.*:DeprecationWarning", + "ignore:resume_data is deprecated.*:DeprecationWarning:deluge.core.alertmanager", ]