| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 | import osfrom collections.abc import Callableimport pytest# import monkeypatchfrom _pytest.monkeypatch import MonkeyPatchfrom core.plugin.manager.model import PluginModelManagerfrom tests.integration_tests.model_runtime.__mock.plugin_model import MockModelClassdef mock_plugin_daemon(    monkeypatch: MonkeyPatch,) -> Callable[[], None]:    """    mock openai module    :param monkeypatch: pytest monkeypatch fixture    :return: unpatch function    """    def unpatch() -> None:        monkeypatch.undo()    monkeypatch.setattr(PluginModelManager, "invoke_llm", MockModelClass.invoke_llm)    monkeypatch.setattr(PluginModelManager, "fetch_model_providers", MockModelClass.fetch_model_providers)    monkeypatch.setattr(PluginModelManager, "get_model_schema", MockModelClass.get_model_schema)    return unpatchMOCK = os.getenv("MOCK_SWITCH", "false").lower() == "true"@pytest.fixturedef setup_model_mock(monkeypatch):    if MOCK:        unpatch = mock_plugin_daemon(monkeypatch)    yield    if MOCK:        unpatch()
 |