mirror of
https://github.com/microsoft/autogen.git
synced 2025-08-28 10:30:08 +00:00
40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
from types import NoneType
|
|
from typing import Any, Optional, Union
|
|
|
|
from agnext.components._type_routed_agent import AnyType, get_types, message_handler
|
|
from agnext.core import CancellationToken
|
|
|
|
|
|
def test_get_types() -> None:
|
|
assert get_types(Union[int, str]) == (int, str)
|
|
assert get_types(int | str) == (int, str)
|
|
assert get_types(int) == (int,)
|
|
assert get_types(str) == (str,)
|
|
assert get_types("test") is None
|
|
assert get_types(Optional[int]) == (int, NoneType)
|
|
assert get_types(NoneType) == (NoneType,)
|
|
assert get_types(None) == (NoneType,)
|
|
|
|
|
|
def test_handler() -> None:
|
|
|
|
class HandlerClass:
|
|
@message_handler()
|
|
async def handler(self, message: int, cancellation_token: CancellationToken) -> Any:
|
|
return None
|
|
|
|
@message_handler()
|
|
async def handler2(self, message: str | bool, cancellation_token: CancellationToken) -> None:
|
|
return None
|
|
|
|
assert HandlerClass.handler.target_types == [int]
|
|
assert HandlerClass.handler.produces_types == [AnyType]
|
|
|
|
assert HandlerClass.handler2.target_types == [str, bool]
|
|
assert HandlerClass.handler2.produces_types == [NoneType]
|
|
|
|
class HandlerClass:
|
|
@message_handler()
|
|
async def handler(self, message: int, cancellation_token: CancellationToken) -> Any:
|
|
return None
|