mirror of
https://github.com/langgenius/dify.git
synced 2026-04-14 16:08:01 +08:00
test: migrate mcp controller tests to testcontainers (#34297)
This commit is contained in:
parent
097095a69b
commit
15aa8071f8
@ -1,5 +1,10 @@
|
|||||||
|
"""Testcontainers integration tests for controllers.mcp.mcp endpoints."""
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
import types
|
import types
|
||||||
from unittest.mock import MagicMock, patch
|
from unittest.mock import MagicMock, patch
|
||||||
|
from uuid import uuid4
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from flask import Response
|
from flask import Response
|
||||||
@ -14,24 +19,6 @@ def unwrap(func):
|
|||||||
return func
|
return func
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(autouse=True)
|
|
||||||
def mock_db():
|
|
||||||
module.db = types.SimpleNamespace(engine=object())
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
|
||||||
def fake_session():
|
|
||||||
session = MagicMock()
|
|
||||||
session.__enter__.return_value = session
|
|
||||||
session.__exit__.return_value = False
|
|
||||||
return session
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(autouse=True)
|
|
||||||
def mock_session(fake_session):
|
|
||||||
module.Session = MagicMock(return_value=fake_session)
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(autouse=True)
|
@pytest.fixture(autouse=True)
|
||||||
def mock_mcp_ns():
|
def mock_mcp_ns():
|
||||||
fake_ns = types.SimpleNamespace()
|
fake_ns = types.SimpleNamespace()
|
||||||
@ -44,8 +31,13 @@ def fake_payload(data):
|
|||||||
module.mcp_ns.payload = data
|
module.mcp_ns.payload = data
|
||||||
|
|
||||||
|
|
||||||
|
_TENANT_ID = str(uuid4())
|
||||||
|
_APP_ID = str(uuid4())
|
||||||
|
_SERVER_ID = str(uuid4())
|
||||||
|
|
||||||
|
|
||||||
class DummyServer:
|
class DummyServer:
|
||||||
def __init__(self, status, app_id="app-1", tenant_id="tenant-1", server_id="srv-1"):
|
def __init__(self, status, app_id=_APP_ID, tenant_id=_TENANT_ID, server_id=_SERVER_ID):
|
||||||
self.status = status
|
self.status = status
|
||||||
self.app_id = app_id
|
self.app_id = app_id
|
||||||
self.tenant_id = tenant_id
|
self.tenant_id = tenant_id
|
||||||
@ -54,8 +46,8 @@ class DummyServer:
|
|||||||
|
|
||||||
class DummyApp:
|
class DummyApp:
|
||||||
def __init__(self, mode, workflow=None, app_model_config=None):
|
def __init__(self, mode, workflow=None, app_model_config=None):
|
||||||
self.id = "app-1"
|
self.id = _APP_ID
|
||||||
self.tenant_id = "tenant-1"
|
self.tenant_id = _TENANT_ID
|
||||||
self.mode = mode
|
self.mode = mode
|
||||||
self.workflow = workflow
|
self.workflow = workflow
|
||||||
self.app_model_config = app_model_config
|
self.app_model_config = app_model_config
|
||||||
@ -76,6 +68,7 @@ class DummyResult:
|
|||||||
return {"jsonrpc": "2.0", "result": "ok", "id": 1}
|
return {"jsonrpc": "2.0", "result": "ok", "id": 1}
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.usefixtures("flask_req_ctx_with_containers")
|
||||||
class TestMCPAppApi:
|
class TestMCPAppApi:
|
||||||
@patch.object(module, "handle_mcp_request", return_value=DummyResult(), autospec=True)
|
@patch.object(module, "handle_mcp_request", return_value=DummyResult(), autospec=True)
|
||||||
def test_success_request(self, mock_handle):
|
def test_success_request(self, mock_handle):
|
||||||
Loading…
Reference in New Issue
Block a user