mirror of
https://github.com/langgenius/dify.git
synced 2026-05-05 00:57:04 +08:00
fix: test
This commit is contained in:
parent
3b37ae1b4e
commit
04bfa235a9
@ -7,8 +7,9 @@ from faker import Faker
|
|||||||
from flask import Flask
|
from flask import Flask
|
||||||
from werkzeug.datastructures import FileStorage
|
from werkzeug.datastructures import FileStorage
|
||||||
|
|
||||||
|
from models.enums import AppTriggerStatus, AppTriggerType
|
||||||
from models.model import App
|
from models.model import App
|
||||||
from models.trigger import WorkflowWebhookTrigger
|
from models.trigger import AppTrigger, WorkflowWebhookTrigger
|
||||||
from models.workflow import Workflow
|
from models.workflow import Workflow
|
||||||
from services.account_service import AccountService, TenantService
|
from services.account_service import AccountService, TenantService
|
||||||
from services.trigger.webhook_service import WebhookService
|
from services.trigger.webhook_service import WebhookService
|
||||||
@ -134,6 +135,18 @@ class TestWebhookService:
|
|||||||
created_by=account.id,
|
created_by=account.id,
|
||||||
)
|
)
|
||||||
db_session_with_containers.add(webhook_trigger)
|
db_session_with_containers.add(webhook_trigger)
|
||||||
|
db_session_with_containers.flush()
|
||||||
|
|
||||||
|
# Create app trigger (required for non-debug mode)
|
||||||
|
app_trigger = AppTrigger(
|
||||||
|
tenant_id=tenant.id,
|
||||||
|
app_id=app.id,
|
||||||
|
node_id="webhook_node",
|
||||||
|
trigger_type=AppTriggerType.TRIGGER_WEBHOOK,
|
||||||
|
title="Test Webhook",
|
||||||
|
status=AppTriggerStatus.ENABLED,
|
||||||
|
)
|
||||||
|
db_session_with_containers.add(app_trigger)
|
||||||
db_session_with_containers.commit()
|
db_session_with_containers.commit()
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@ -143,6 +156,7 @@ class TestWebhookService:
|
|||||||
"workflow": workflow,
|
"workflow": workflow,
|
||||||
"webhook_trigger": webhook_trigger,
|
"webhook_trigger": webhook_trigger,
|
||||||
"webhook_id": webhook_id,
|
"webhook_id": webhook_id,
|
||||||
|
"app_trigger": app_trigger,
|
||||||
}
|
}
|
||||||
|
|
||||||
def test_get_webhook_trigger_and_workflow_success(self, test_data, flask_app_with_containers):
|
def test_get_webhook_trigger_and_workflow_success(self, test_data, flask_app_with_containers):
|
||||||
@ -436,23 +450,20 @@ class TestWebhookService:
|
|||||||
# Verify AsyncWorkflowService was called
|
# Verify AsyncWorkflowService was called
|
||||||
mock_external_dependencies["async_service"].trigger_workflow_async.assert_called_once()
|
mock_external_dependencies["async_service"].trigger_workflow_async.assert_called_once()
|
||||||
|
|
||||||
def test_trigger_workflow_execution_no_tenant_owner(
|
def test_trigger_workflow_execution_end_user_service_failure(
|
||||||
self, test_data, mock_external_dependencies, flask_app_with_containers
|
self, test_data, mock_external_dependencies, flask_app_with_containers
|
||||||
):
|
):
|
||||||
"""Test workflow execution trigger when tenant owner not found."""
|
"""Test workflow execution trigger when EndUserService fails."""
|
||||||
webhook_data = {"method": "POST", "headers": {}, "query_params": {}, "body": {}, "files": {}}
|
webhook_data = {"method": "POST", "headers": {}, "query_params": {}, "body": {}, "files": {}}
|
||||||
|
|
||||||
with flask_app_with_containers.app_context():
|
with flask_app_with_containers.app_context():
|
||||||
# Mock tenant owner lookup to return None
|
# Mock EndUserService to raise an exception
|
||||||
with (
|
with patch(
|
||||||
patch("services.trigger.webhook_service.select") as mock_select,
|
"services.trigger.webhook_service.EndUserService.get_or_create_end_user_by_type"
|
||||||
patch("services.trigger.webhook_service.Session") as mock_session,
|
) as mock_end_user:
|
||||||
):
|
mock_end_user.side_effect = ValueError("Failed to create end user")
|
||||||
mock_session_instance = MagicMock()
|
|
||||||
mock_session.return_value.__enter__.return_value = mock_session_instance
|
|
||||||
mock_session_instance.scalar.return_value = None
|
|
||||||
|
|
||||||
with pytest.raises(ValueError, match="Tenant owner not found"):
|
with pytest.raises(ValueError, match="Failed to create end user"):
|
||||||
WebhookService.trigger_workflow_execution(
|
WebhookService.trigger_workflow_execution(
|
||||||
test_data["webhook_trigger"], webhook_data, test_data["workflow"]
|
test_data["webhook_trigger"], webhook_data, test_data["workflow"]
|
||||||
)
|
)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user