test: mmooaare tests (like one).
ref: N25B-334
This commit is contained in:
@@ -7,7 +7,7 @@ from fastapi import FastAPI
|
|||||||
from fastapi.testclient import TestClient
|
from fastapi.testclient import TestClient
|
||||||
|
|
||||||
from control_backend.api.v1.endpoints import robot
|
from control_backend.api.v1.endpoints import robot
|
||||||
from control_backend.schemas.ri_message import SpeechCommand
|
from control_backend.schemas.ri_message import GestureCommand, SpeechCommand
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
@@ -47,7 +47,7 @@ def mock_sockets(mock_zmq_context):
|
|||||||
return {"sub": mock_sub_socket, "pub": mock_pub_socket}
|
return {"sub": mock_sub_socket, "pub": mock_pub_socket}
|
||||||
|
|
||||||
|
|
||||||
def test_receive_command_success(client):
|
def test_receive_speech_command_success(client):
|
||||||
"""
|
"""
|
||||||
Test for successful reception of a command. Ensures the status code is 202 and the response body
|
Test for successful reception of a command. Ensures the status code is 202 and the response body
|
||||||
is correct. It also verifies that the ZeroMQ socket's send_multipart method is called with the
|
is correct. It also verifies that the ZeroMQ socket's send_multipart method is called with the
|
||||||
@@ -73,6 +73,32 @@ def test_receive_command_success(client):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test_receive_gesture_command_success(client):
|
||||||
|
"""
|
||||||
|
Test for successful reception of a command. Ensures the status code is 202 and the response body
|
||||||
|
is correct. It also verifies that the ZeroMQ socket's send_multipart method is called with the
|
||||||
|
expected data.
|
||||||
|
"""
|
||||||
|
# Arrange
|
||||||
|
mock_pub_socket = AsyncMock()
|
||||||
|
client.app.state.endpoints_pub_socket = mock_pub_socket
|
||||||
|
|
||||||
|
command_data = {"endpoint": "actuate/gesture/tag", "data": "happy"}
|
||||||
|
gesture_command = GestureCommand(**command_data)
|
||||||
|
|
||||||
|
# Act
|
||||||
|
response = client.post("/command", json=command_data)
|
||||||
|
|
||||||
|
# Assert
|
||||||
|
assert response.status_code == 202
|
||||||
|
assert response.json() == {"status": "Command received"}
|
||||||
|
|
||||||
|
# Verify that the ZMQ socket was used correctly
|
||||||
|
mock_pub_socket.send_multipart.assert_awaited_once_with(
|
||||||
|
[b"command", gesture_command.model_dump_json().encode()]
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def test_receive_command_invalid_payload(client):
|
def test_receive_command_invalid_payload(client):
|
||||||
"""
|
"""
|
||||||
Test invalid data handling (schema validation).
|
Test invalid data handling (schema validation).
|
||||||
|
|||||||
Reference in New Issue
Block a user