mirror of
https://github.com/langgenius/dify.git
synced 2026-09-08 11:04:27 +08:00
test: use sqlite3 session in test_plugin (#38710)
This commit is contained in:
parent
b34a5940b3
commit
78a7c39d63
@ -12,7 +12,9 @@ from unittest.mock import MagicMock, patch
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from flask import Flask
|
from flask import Flask
|
||||||
|
from sqlalchemy.orm import Session
|
||||||
|
|
||||||
|
from controllers.inner_api.plugin import plugin as plugin_module
|
||||||
from controllers.inner_api.plugin.plugin import (
|
from controllers.inner_api.plugin.plugin import (
|
||||||
PluginDownloadFileRequestApi,
|
PluginDownloadFileRequestApi,
|
||||||
PluginFetchAppInfoApi,
|
PluginFetchAppInfoApi,
|
||||||
@ -32,6 +34,7 @@ from controllers.inner_api.plugin.plugin import (
|
|||||||
PluginUploadFileRequestApi,
|
PluginUploadFileRequestApi,
|
||||||
)
|
)
|
||||||
from core.workflow.file_reference import build_file_reference
|
from core.workflow.file_reference import build_file_reference
|
||||||
|
from models import Tenant
|
||||||
|
|
||||||
|
|
||||||
def _extract_raw_post(cls):
|
def _extract_raw_post(cls):
|
||||||
@ -300,12 +303,26 @@ class TestPluginDownloadFileRequestApi:
|
|||||||
assert hasattr(api_instance, "post")
|
assert hasattr(api_instance, "post")
|
||||||
assert callable(api_instance.post)
|
assert callable(api_instance.post)
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("sqlite_session", [(Tenant,)], indirect=True)
|
||||||
@patch("controllers.inner_api.plugin.plugin.FileRequestService")
|
@patch("controllers.inner_api.plugin.plugin.FileRequestService")
|
||||||
@patch("controllers.inner_api.plugin.plugin.db")
|
def test_post_returns_signed_download_url(
|
||||||
def test_post_returns_signed_download_url(self, mock_db, mock_service_cls, api_instance, app: Flask):
|
self,
|
||||||
mock_tenant = MagicMock()
|
mock_service_cls,
|
||||||
mock_tenant.id = "tenant-id"
|
api_instance,
|
||||||
mock_db.session.get.return_value = mock_tenant
|
app: Flask,
|
||||||
|
monkeypatch: pytest.MonkeyPatch,
|
||||||
|
sqlite_session: Session,
|
||||||
|
):
|
||||||
|
tenant = Tenant(
|
||||||
|
name="Plugin Tenant",
|
||||||
|
encrypt_public_key=None,
|
||||||
|
plan="basic",
|
||||||
|
custom_config=None,
|
||||||
|
)
|
||||||
|
tenant.id = "49a99e46-bc2c-4885-91fa-47615f6192b5"
|
||||||
|
sqlite_session.add(tenant)
|
||||||
|
sqlite_session.commit()
|
||||||
|
monkeypatch.setattr(plugin_module.db, "session", sqlite_session)
|
||||||
mock_service = mock_service_cls.return_value
|
mock_service = mock_service_cls.return_value
|
||||||
mock_service.request_download_url.return_value = MagicMock(
|
mock_service.request_download_url.return_value = MagicMock(
|
||||||
filename="report.pdf",
|
filename="report.pdf",
|
||||||
@ -314,7 +331,7 @@ class TestPluginDownloadFileRequestApi:
|
|||||||
download_url="https://files.example.com/download",
|
download_url="https://files.example.com/download",
|
||||||
)
|
)
|
||||||
mock_payload = MagicMock()
|
mock_payload = MagicMock()
|
||||||
mock_payload.tenant_id = "tenant-id"
|
mock_payload.tenant_id = tenant.id
|
||||||
mock_payload.user_id = "user-id"
|
mock_payload.user_id = "user-id"
|
||||||
mock_payload.user_from = "account"
|
mock_payload.user_from = "account"
|
||||||
mock_payload.invoke_from = "debugger"
|
mock_payload.invoke_from = "debugger"
|
||||||
@ -329,7 +346,7 @@ class TestPluginDownloadFileRequestApi:
|
|||||||
result = raw_post(api_instance, payload=mock_payload)
|
result = raw_post(api_instance, payload=mock_payload)
|
||||||
|
|
||||||
mock_service.request_download_url.assert_called_once_with(
|
mock_service.request_download_url.assert_called_once_with(
|
||||||
tenant_id="tenant-id",
|
tenant_id=tenant.id,
|
||||||
user_id="user-id",
|
user_id="user-id",
|
||||||
user_from="account",
|
user_from="account",
|
||||||
invoke_from="debugger",
|
invoke_from="debugger",
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user