"""Test bootstrap for harness unit tests.
The repository may run without optional third-party SDKs such as
``dashscope`` in local CI environments. Provide a lightweight stub
so deepagent module imports remain testable.
"""
from __future__ import annotations
import sys
import types
def _install_dashscope_stub() -> None:
if "dashscope" in sys.modules:
return
module = types.ModuleType("dashscope")
module.__path__ = []
class _DummyApi:
@staticmethod
def call(*args, **kwargs):
class _Resp:
status_code = 200
output = {}
code = ""
message = ""
return _Resp()
@staticmethod
def wait(*args, **kwargs):
class _Resp:
status_code = 200
output = {"video_url": ""}
code = ""
message = ""
return _Resp()
class _DashScopeAPIResponse:
status_code = 200
output = {}
code = ""
message = ""
module.MultiModalConversation = _DummyApi
module.VideoSynthesis = _DummyApi
module.AioMultiModalEmbedding = _DummyApi
module.MultiModalEmbedding = _DummyApi
module.base_http_api_url = ""
api_entities = types.ModuleType("dashscope.api_entities")
api_entities.__path__ = []
dashscope_response = types.ModuleType("dashscope.api_entities.dashscope_response")
dashscope_response.DashScopeAPIResponse = _DashScopeAPIResponse
common = types.ModuleType("dashscope.common")
common.__path__ = []
constants = types.ModuleType("dashscope.common.constants")
constants.REQUEST_TIMEOUT_KEYWORD = "request_timeout"
sys.modules["dashscope"] = module
sys.modules["dashscope.api_entities"] = api_entities
sys.modules["dashscope.api_entities.dashscope_response"] = dashscope_response
sys.modules["dashscope.common"] = common
sys.modules["dashscope.common.constants"] = constants
api_entities = types.ModuleType("dashscope.api_entities")
dashscope_response = types.ModuleType("dashscope.api_entities.dashscope_response")
dashscope_response.DashScopeAPIResponse = object
api_entities.dashscope_response = dashscope_response
module.api_entities = api_entities
sys.modules["dashscope.api_entities"] = api_entities
sys.modules["dashscope.api_entities.dashscope_response"] = dashscope_response
common = types.ModuleType("dashscope.common")
constants = types.ModuleType("dashscope.common.constants")
constants.REQUEST_TIMEOUT_KEYWORD = "request_timeout"
common.constants = constants
module.common = common
sys.modules["dashscope.common"] = common
sys.modules["dashscope.common.constants"] = constants
_install_dashscope_stub()