Files
dify-plugin-sdks/python/tests/test_tool_call_model_init.py
QuantumGhost 5cb24625c3 ci(python): Add CI Pipeline for Python SDK (#72)
* 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
2025-04-14 20:25:19 +08:00

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 == ""