refactor(api): refactor all

- Replaced direct imports of `TriggerProviderID` and `ToolProviderID` from `core.plugin.entities.plugin` with imports from `models.provider_ids` for better organization.
- Refactored workflow node classes to inherit from a unified `Node` class, improving consistency and maintainability.
- Removed unused code and comments to clean up the implementation, particularly in the `workflow_trigger.py` and `builtin_tools_manage_service.py` files.

These changes enhance the clarity and structure of the codebase, facilitating easier future modifications.
This commit is contained in:
Harry
2025-09-25 18:22:19 +08:00
parent 6853a699e1
commit 896f3252b8
30 changed files with 61 additions and 160 deletions

View File

@ -7,6 +7,7 @@ from core.tools.entities.api_entities import ToolProviderApiEntity
from core.tools.entities.common_entities import I18nObject
from core.tools.entities.tool_entities import ToolProviderType
from models.tools import ApiToolProvider, BuiltinToolProvider, MCPToolProvider, WorkflowToolProvider
from services.plugin.plugin_service import PluginService
from services.tools.tools_transform_service import ToolTransformService
@ -111,13 +112,13 @@ class TestToolTransformService:
filename = "test_icon.png"
# Act: Execute the method under test
result = ToolTransformService.get_plugin_icon_url(tenant_id, filename)
result = PluginService.get_plugin_icon_url(str(tenant_id), filename)
# Assert: Verify the expected outcomes
assert result is not None
assert isinstance(result, str)
assert "console/api/workspaces/current/plugin/icon" in result
assert tenant_id in result
assert str(tenant_id) in result
assert filename in result
assert result.startswith("https://console.example.com")
@ -142,13 +143,13 @@ class TestToolTransformService:
filename = "test_icon.png"
# Act: Execute the method under test
result = ToolTransformService.get_plugin_icon_url(tenant_id, filename)
result = PluginService.get_plugin_icon_url(str(tenant_id), filename)
# Assert: Verify the expected outcomes
assert result is not None
assert isinstance(result, str)
assert result.startswith("/console/api/workspaces/current/plugin/icon")
assert tenant_id in result
assert str(tenant_id) in result
assert filename in result
# Verify URL structure
@ -332,7 +333,7 @@ class TestToolTransformService:
provider = {"type": ToolProviderType.BUILT_IN.value, "name": fake.company(), "icon": "🔧"}
# Act: Execute the method under test
ToolTransformService.repack_provider(tenant_id, provider)
ToolTransformService.repack_provider(str(tenant_id), provider)
# Assert: Verify the expected outcomes
assert "icon" in provider
@ -356,7 +357,7 @@ class TestToolTransformService:
# Create provider entity with plugin_id
provider = ToolProviderApiEntity(
id=fake.uuid4(),
id=str(fake.uuid4()),
author=fake.name(),
name=fake.company(),
description=I18nObject(en_US=fake.text(max_nb_chars=100)),
@ -378,14 +379,14 @@ class TestToolTransformService:
assert provider.icon is not None
assert isinstance(provider.icon, str)
assert "console/api/workspaces/current/plugin/icon" in provider.icon
assert tenant_id in provider.icon
assert str(tenant_id) in provider.icon
assert "test_icon.png" in provider.icon
# Verify dark icon handling
assert provider.icon_dark is not None
assert isinstance(provider.icon_dark, str)
assert "console/api/workspaces/current/plugin/icon" in provider.icon_dark
assert tenant_id in provider.icon_dark
assert str(tenant_id) in provider.icon_dark
assert "test_icon_dark.png" in provider.icon_dark
def test_repack_provider_entity_no_plugin_success(
@ -421,7 +422,7 @@ class TestToolTransformService:
)
# Act: Execute the method under test
ToolTransformService.repack_provider(tenant_id, provider)
ToolTransformService.repack_provider(str(tenant_id), provider)
# Assert: Verify the expected outcomes
assert provider.icon is not None