Add core components for topics (#278)

* Add core components for topics

* rename topic to topic id
This commit is contained in:
Jack Gerrits
2024-07-26 14:38:08 -04:00
committed by GitHub
parent 61dec0a3ca
commit 7e75dc8df8
6 changed files with 117 additions and 1 deletions

View File

@@ -0,0 +1,22 @@
from agnext.components import TypeSubscription
from agnext.core import TopicId, AgentId
import pytest
from agnext.core.exceptions import CantHandleException
def test_type_subscription_match() -> None:
sub = TypeSubscription(topic_type="t1", agent_type="a1")
assert sub.is_match(TopicId(type="t0", source="s1")) == False
assert sub.is_match(TopicId(type="t1", source="s1")) == True
assert sub.is_match(TopicId(type="t1", source="s2")) == True
def test_type_subscription_map() -> None:
sub = TypeSubscription(topic_type="t1", agent_type="a1")
assert sub.map_to_agent(TopicId(type="t1", source="s1")) == AgentId(name="a1", namespace="s1")
with pytest.raises(CantHandleException):
_agent_id = sub.map_to_agent(TopicId(type="t0", source="s1"))