chore: add unit test for router and implement command router

ref: N25B-205
This commit is contained in:
Björn Otgaar
2025-10-23 16:45:41 +02:00
parent 1f8d769762
commit a2a04740e5
5 changed files with 79 additions and 52 deletions

View File

@@ -32,9 +32,9 @@ class RICommandAgent(Agent):
# Try to get body
try:
message_json = json.loads(body.decode("utf-8"))
message = SpeechCommand.model_validate(message_json)
message = SpeechCommand.model_validate(body)
# Send to the robot.
await self.agent.pubsocket.send_json(message)
except Exception as e:

View File

@@ -1,37 +0,0 @@
import json
import logging
from spade.agent import Agent
from spade.behaviour import CyclicBehaviour
import zmq
from control_backend.core.config import settings
from control_backend.core.zmq_context import context
from control_backend.schemas.message import Message
logger = logging.getLogger(__name__)
class TestAgent(Agent):
socket: zmq.Socket
class ListenBehaviour(CyclicBehaviour):
async def run(self):
assert self.agent is not None
topic, body = await self.agent.socket.recv_multipart()
try:
message_json = json.loads(body.decode("utf-8"))
message = Message.model_validate(message_json)
logger.info("Received message \"%s\"", message.message)
except Exception as e:
logger.error("Error processing message: %s", e)
async def setup(self):
logger.info("Setting up %s", self.jid)
self.socket = context.socket(zmq.SUB)
self.socket.connect(settings.zmq_settings.internal_comm_address)
self.socket.setsockopt(zmq.SUBSCRIBE, b"message")
b = self.ListenBehaviour()
self.add_behaviour(b)
logger.info("Finished setting up %s", self.jid)