92 lines
2.6 KiB
Python
92 lines
2.6 KiB
Python
# Copyright (c) Microsoft. All rights reserved.
|
|
import pytest
|
|
|
|
from semantic_kernel.functions.kernel_function_metadata import KernelFunctionMetadata
|
|
from semantic_kernel.functions.kernel_parameter_metadata import KernelParameterMetadata
|
|
|
|
|
|
def test_kernel_function_metadata():
|
|
function_metadata = KernelFunctionMetadata(
|
|
name="function1",
|
|
plugin_name="plugin1",
|
|
description="Semantic function",
|
|
parameters=[],
|
|
is_prompt=True,
|
|
is_asynchronous=True,
|
|
)
|
|
assert function_metadata.is_prompt
|
|
|
|
|
|
def test_kernel_function_metadata_defaults():
|
|
function_metadata = KernelFunctionMetadata(
|
|
name="function1",
|
|
plugin_name="plugin1",
|
|
description="Semantic function",
|
|
is_prompt=True,
|
|
)
|
|
assert function_metadata.parameters == []
|
|
assert function_metadata.is_asynchronous
|
|
|
|
|
|
def test_kernel_function_metadata_name_pattern_error():
|
|
with pytest.raises(ValueError):
|
|
KernelFunctionMetadata(
|
|
name="*",
|
|
plugin_name="plugin1",
|
|
description="Semantic function",
|
|
is_prompt=True,
|
|
)
|
|
|
|
|
|
def test_kernel_function_metadata_name_empty_error():
|
|
with pytest.raises(ValueError):
|
|
KernelFunctionMetadata(
|
|
name="",
|
|
plugin_name="plugin1",
|
|
description="Semantic function",
|
|
is_prompt=True,
|
|
)
|
|
|
|
|
|
def test_kernel_function_equals():
|
|
function_metadata_1 = KernelFunctionMetadata(
|
|
name="function1",
|
|
plugin_name="plugin1",
|
|
description="Semantic function",
|
|
is_prompt=True,
|
|
)
|
|
function_metadata_2 = KernelFunctionMetadata(
|
|
name="function1",
|
|
plugin_name="plugin1",
|
|
description="Semantic function",
|
|
is_prompt=True,
|
|
)
|
|
assert function_metadata_1 == function_metadata_2
|
|
|
|
|
|
def test_kernel_function_not_equals():
|
|
function_metadata_1 = KernelFunctionMetadata(
|
|
name="function1",
|
|
plugin_name="plugin1",
|
|
description="Semantic function",
|
|
is_prompt=True,
|
|
)
|
|
function_metadata_2 = KernelFunctionMetadata(
|
|
name="function2",
|
|
plugin_name="plugin1",
|
|
description="Semantic function",
|
|
is_prompt=True,
|
|
)
|
|
assert function_metadata_1 != function_metadata_2
|
|
|
|
|
|
def test_kernel_function_not_equals_other_object():
|
|
function_metadata_1 = KernelFunctionMetadata(
|
|
name="function1",
|
|
plugin_name="plugin1",
|
|
description="Semantic function",
|
|
is_prompt=True,
|
|
)
|
|
function_metadata_2 = KernelParameterMetadata(name="function2", description="Semantic function", default_value="")
|
|
assert function_metadata_1 != function_metadata_2
|