plugin_daemon.py 1012 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import os
  2. from collections.abc import Callable
  3. import pytest
  4. from core.plugin.impl.model import PluginModelClient
  5. from tests.integration_tests.model_runtime.__mock.plugin_model import MockModelClass
  6. def mock_plugin_daemon(
  7. monkeypatch: pytest.MonkeyPatch,
  8. ) -> Callable[[], None]:
  9. """
  10. mock openai module
  11. :param monkeypatch: pytest monkeypatch fixture
  12. :return: unpatch function
  13. """
  14. def unpatch() -> None:
  15. monkeypatch.undo()
  16. monkeypatch.setattr(PluginModelClient, "invoke_llm", MockModelClass.invoke_llm)
  17. monkeypatch.setattr(PluginModelClient, "fetch_model_providers", MockModelClass.fetch_model_providers)
  18. monkeypatch.setattr(PluginModelClient, "get_model_schema", MockModelClass.get_model_schema)
  19. return unpatch
  20. MOCK = os.getenv("MOCK_SWITCH", "false").lower() == "true"
  21. @pytest.fixture
  22. def setup_model_mock(monkeypatch: pytest.MonkeyPatch):
  23. if MOCK:
  24. unpatch = mock_plugin_daemon(monkeypatch)
  25. yield
  26. if MOCK:
  27. unpatch()