mirror of
https://github.com/microsoft/autogen.git
synced 2025-07-09 01:51:16 +00:00
127 lines
4.4 KiB
Python
127 lines
4.4 KiB
Python
import pytest
|
|
from autogen_agentchat.messages import StopMessage, TextMessage
|
|
from autogen_agentchat.task import MaxMessageTermination, StopMessageTermination, TextMentionTermination
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_stop_message_termination() -> None:
|
|
termination = StopMessageTermination()
|
|
assert await termination([]) is None
|
|
await termination.reset()
|
|
assert await termination([TextMessage(content="Hello", source="user")]) is None
|
|
await termination.reset()
|
|
assert await termination([StopMessage(content="Stop", source="user")]) is not None
|
|
await termination.reset()
|
|
assert (
|
|
await termination([TextMessage(content="Hello", source="user"), TextMessage(content="World", source="agent")])
|
|
is None
|
|
)
|
|
await termination.reset()
|
|
assert (
|
|
await termination([TextMessage(content="Hello", source="user"), StopMessage(content="Stop", source="user")])
|
|
is not None
|
|
)
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_max_message_termination() -> None:
|
|
termination = MaxMessageTermination(2)
|
|
assert await termination([]) is None
|
|
await termination.reset()
|
|
assert await termination([TextMessage(content="Hello", source="user")]) is None
|
|
await termination.reset()
|
|
assert (
|
|
await termination([TextMessage(content="Hello", source="user"), TextMessage(content="World", source="agent")])
|
|
is not None
|
|
)
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_mention_termination() -> None:
|
|
termination = TextMentionTermination("stop")
|
|
assert await termination([]) is None
|
|
await termination.reset()
|
|
assert await termination([TextMessage(content="Hello", source="user")]) is None
|
|
await termination.reset()
|
|
assert await termination([TextMessage(content="stop", source="user")]) is not None
|
|
await termination.reset()
|
|
assert (
|
|
await termination([TextMessage(content="Hello", source="user"), TextMessage(content="stop", source="user")])
|
|
is not None
|
|
)
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_and_termination() -> None:
|
|
termination = MaxMessageTermination(2) & TextMentionTermination("stop")
|
|
assert await termination([]) is None
|
|
await termination.reset()
|
|
assert await termination([TextMessage(content="Hello", source="user")]) is None
|
|
await termination.reset()
|
|
assert (
|
|
await termination([TextMessage(content="Hello", source="user"), TextMessage(content="World", source="agent")])
|
|
is None
|
|
)
|
|
await termination.reset()
|
|
assert (
|
|
await termination([TextMessage(content="Hello", source="user"), TextMessage(content="stop", source="user")])
|
|
is not None
|
|
)
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_or_termination() -> None:
|
|
termination = MaxMessageTermination(3) | TextMentionTermination("stop")
|
|
assert await termination([]) is None
|
|
await termination.reset()
|
|
assert await termination([TextMessage(content="Hello", source="user")]) is None
|
|
await termination.reset()
|
|
assert (
|
|
await termination([TextMessage(content="Hello", source="user"), TextMessage(content="World", source="agent")])
|
|
is None
|
|
)
|
|
await termination.reset()
|
|
assert (
|
|
await termination([TextMessage(content="Hello", source="user"), TextMessage(content="stop", source="user")])
|
|
is not None
|
|
)
|
|
await termination.reset()
|
|
assert (
|
|
await termination([TextMessage(content="Hello", source="user"), TextMessage(content="Hello", source="user")])
|
|
is None
|
|
)
|
|
await termination.reset()
|
|
assert (
|
|
await termination(
|
|
[
|
|
TextMessage(content="Hello", source="user"),
|
|
TextMessage(content="Hello", source="user"),
|
|
TextMessage(content="Hello", source="user"),
|
|
]
|
|
)
|
|
is not None
|
|
)
|
|
await termination.reset()
|
|
assert (
|
|
await termination(
|
|
[
|
|
TextMessage(content="Hello", source="user"),
|
|
TextMessage(content="Hello", source="user"),
|
|
TextMessage(content="stop", source="user"),
|
|
]
|
|
)
|
|
is not None
|
|
)
|
|
await termination.reset()
|
|
assert (
|
|
await termination(
|
|
[
|
|
TextMessage(content="Hello", source="user"),
|
|
TextMessage(content="Hello", source="user"),
|
|
TextMessage(content="Hello", source="user"),
|
|
TextMessage(content="stop", source="user"),
|
|
]
|
|
)
|
|
is not None
|
|
)
|