mirror of
https://github.com/langgenius/dify-plugin-sdks.git
synced 2026-07-22 10:25:23 -04:00
5cb24625c3
* chore(python): temporarily disable `UP007` rule in Ruff Disable the `UP007` rule temporarily due to numerous existing violations in the current codebase. * ci(python): add lint and test for Python SDK * ci: Add mega-linter * chore(python): Add final newline to markdown files * fix(python): Fix linter issues by using ruff's auto fix * fix(python): Fix TRY400 linter violations Ruff suggests using `logger.exception` to log when logging an exception, instead of using `logging.error`. The former logs the exception and the traceback automatically. ref: https://docs.astral.sh/ruff/rules/error-instead-of-exception/ * fix(python): fix ruff linter violations * test(python): Add Test cases for LLM entities Test the initialization of `LLMResult` and `LLMResultChunk`. * test(python): Add test for `AgentModelConfig` Ensures that the `history_prompt_messages` attribute is not shared between instances of `AgentModelConfig`. * chore(python): output diffs in Ruff's format check * style(python): format code with Ruff * chore(python): Add a bash script for fix and format python code * chore: add `persist-credentials: false` to checkout action Enhances security by preventing subsequent steps from accessing GitHub credentials, reducing potential attack surfaces. Ref: https://github.com/actions/checkout#checkout-v4
56 lines
1.7 KiB
Python
56 lines
1.7 KiB
Python
import pytest
|
|
|
|
from dify_plugin.entities.model.message import AssistantPromptMessage
|
|
|
|
|
|
def test_tool_call_model_init_with_explicit_none_fields():
|
|
response_tool_call = {
|
|
"function": {
|
|
"name": None,
|
|
"arguments": None,
|
|
},
|
|
"id": None,
|
|
"type": None,
|
|
}
|
|
|
|
try:
|
|
function = AssistantPromptMessage.ToolCall.ToolCallFunction(
|
|
name=response_tool_call.get("function", {}).get("name", ""),
|
|
arguments=response_tool_call.get("function", {}).get("arguments", ""),
|
|
)
|
|
|
|
tool_call = AssistantPromptMessage.ToolCall(
|
|
id=response_tool_call.get("id", ""),
|
|
type=response_tool_call.get("type", ""),
|
|
function=function,
|
|
)
|
|
|
|
except Exception as ex:
|
|
pytest.fail(f"failed to initialize tool call: {ex!s}")
|
|
else:
|
|
assert tool_call.id == ""
|
|
assert tool_call.type == ""
|
|
assert tool_call.function.name == ""
|
|
assert tool_call.function.arguments == ""
|
|
|
|
response_function_call = {"name": None, "arguments": None, "id": None}
|
|
|
|
try:
|
|
function = AssistantPromptMessage.ToolCall.ToolCallFunction(
|
|
name=response_function_call.get("name", ""),
|
|
arguments=response_function_call.get("arguments", ""),
|
|
)
|
|
|
|
tool_call = AssistantPromptMessage.ToolCall(
|
|
id=response_function_call.get("id", ""),
|
|
type="function",
|
|
function=function,
|
|
)
|
|
|
|
except Exception as ex:
|
|
pytest.fail(f"failed to initialize tool call: {ex!s}")
|
|
else:
|
|
assert tool_call.id == ""
|
|
assert tool_call.function.name == ""
|
|
assert tool_call.function.arguments == ""
|