diff --git a/tests/test_skills_command.py b/tests/test_skills_command.py index d533459c0..f9769429f 100644 --- a/tests/test_skills_command.py +++ b/tests/test_skills_command.py @@ -1,27 +1,17 @@ import io -import sys import tempfile import unittest import zipfile from pathlib import Path -from types import ModuleType from unittest.mock import patch -sys.modules.setdefault("qbittorrentapi", ModuleType("qbittorrentapi")) -setattr(sys.modules["qbittorrentapi"], "TorrentFilesList", list) -sys.modules.setdefault("transmission_rpc", ModuleType("transmission_rpc")) -setattr(sys.modules["transmission_rpc"], "File", object) -sys.modules.setdefault("psutil", ModuleType("psutil")) -sys.modules.setdefault("aioshutil", ModuleType("aioshutil")) -sys.modules.setdefault("pyquery", ModuleType("pyquery")) -setattr(sys.modules["pyquery"], "PyQuery", object) -sys.modules.setdefault("dateparser", ModuleType("dateparser")) -setattr(sys.modules["dateparser"], "parse", lambda *args, **kwargs: None) -sys.modules.setdefault("dateutil", ModuleType("dateutil")) -dateutil_parser = ModuleType("dateutil.parser") -setattr(dateutil_parser, "parse", lambda *args, **kwargs: None) -sys.modules.setdefault("dateutil.parser", dateutil_parser) -setattr(sys.modules["dateutil"], "parser", dateutil_parser) +from app.testing.bootstrap import ensure_optional_stub + +ensure_optional_stub("qbittorrentapi", TorrentFilesList=list) +ensure_optional_stub("transmission_rpc", File=object) +ensure_optional_stub("psutil") +ensure_optional_stub("aioshutil") +ensure_optional_stub("pyquery", PyQuery=object) from app.chain.message import MessageChain from app.chain.skills import SkillsChain, skills_interaction_manager diff --git a/tests/test_slash_command_interactions.py b/tests/test_slash_command_interactions.py index 79f89aee5..423982ba0 100644 --- a/tests/test_slash_command_interactions.py +++ b/tests/test_slash_command_interactions.py @@ -1,23 +1,14 @@ -import sys import unittest -from types import ModuleType, SimpleNamespace +from types import SimpleNamespace from unittest.mock import patch -sys.modules.setdefault("qbittorrentapi", ModuleType("qbittorrentapi")) -setattr(sys.modules["qbittorrentapi"], "TorrentFilesList", list) -sys.modules.setdefault("transmission_rpc", ModuleType("transmission_rpc")) -setattr(sys.modules["transmission_rpc"], "File", object) -sys.modules.setdefault("psutil", ModuleType("psutil")) -sys.modules.setdefault("aioshutil", ModuleType("aioshutil")) -sys.modules.setdefault("pyquery", ModuleType("pyquery")) -setattr(sys.modules["pyquery"], "PyQuery", object) -sys.modules.setdefault("dateparser", ModuleType("dateparser")) -setattr(sys.modules["dateparser"], "parse", lambda *args, **kwargs: None) -sys.modules.setdefault("dateutil", ModuleType("dateutil")) -dateutil_parser = ModuleType("dateutil.parser") -setattr(dateutil_parser, "parse", lambda *args, **kwargs: None) -sys.modules.setdefault("dateutil.parser", dateutil_parser) -setattr(sys.modules["dateutil"], "parser", dateutil_parser) +from app.testing.bootstrap import ensure_optional_stub + +ensure_optional_stub("qbittorrentapi", TorrentFilesList=list) +ensure_optional_stub("transmission_rpc", File=object) +ensure_optional_stub("psutil") +ensure_optional_stub("aioshutil") +ensure_optional_stub("pyquery", PyQuery=object) from app.chain.message import MessageChain from app.chain.site import SiteChain, site_interaction_manager