This commit is contained in:
Louis King
2025-12-03 01:07:22 +00:00
parent 10582fd60a
commit c88ee99e55
27 changed files with 226 additions and 168 deletions
+5 -1
View File
@@ -11,7 +11,11 @@ from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from meshcore_hub.api.app import create_app
from meshcore_hub.api.dependencies import get_db_session, get_mqtt_client, get_db_manager
from meshcore_hub.api.dependencies import (
get_db_session,
get_mqtt_client,
get_db_manager,
)
from meshcore_hub.common.database import DatabaseManager
from meshcore_hub.common.models import (
Advertisement,
+1 -3
View File
@@ -35,9 +35,7 @@ class TestListAdvertisements:
data = response.json()
assert len(data["items"]) == 1
response = client_no_auth.get(
"/api/v1/advertisements?public_key=nonexistent"
)
response = client_no_auth.get("/api/v1/advertisements?public_key=nonexistent")
assert response.status_code == 200
data = response.json()
assert len(data["items"]) == 0
+1 -3
View File
@@ -33,9 +33,7 @@ class TestListTelemetry:
data = response.json()
assert len(data["items"]) == 1
response = client_no_auth.get(
"/api/v1/telemetry?node_public_key=nonexistent"
)
response = client_no_auth.get("/api/v1/telemetry?node_public_key=nonexistent")
assert response.status_code == 200
data = response.json()
assert len(data["items"]) == 0
+7 -2
View File
@@ -15,7 +15,10 @@ class TestSubscriber:
client = MagicMock()
client.topic_builder = MagicMock()
client.topic_builder.all_events_topic.return_value = "meshcore/+/event/#"
client.topic_builder.parse_event_topic.return_value = ("a" * 64, "advertisement")
client.topic_builder.parse_event_topic.return_value = (
"a" * 64,
"advertisement",
)
return client
@pytest.fixture
@@ -47,7 +50,9 @@ class TestSubscriber:
mock_mqtt_client.stop.assert_called_once()
mock_mqtt_client.disconnect.assert_called_once()
def test_handle_mqtt_message_calls_handler(self, subscriber, mock_mqtt_client, db_manager):
def test_handle_mqtt_message_calls_handler(
self, subscriber, mock_mqtt_client, db_manager
):
"""Test that MQTT messages are routed to handlers."""
handler = MagicMock()
subscriber.register_handler("advertisement", handler)
+7 -2
View File
@@ -24,7 +24,9 @@ class TestReceiver:
"""Create a receiver instance."""
return Receiver(mock_device, mock_mqtt_client)
def test_start_connects_device_and_mqtt(self, receiver, mock_device, mock_mqtt_client):
def test_start_connects_device_and_mqtt(
self, receiver, mock_device, mock_mqtt_client
):
"""Test that start connects to device and MQTT."""
receiver.start()
@@ -32,7 +34,9 @@ class TestReceiver:
mock_mqtt_client.connect.assert_called_once()
mock_mqtt_client.start_background.assert_called_once()
def test_stop_disconnects_device_and_mqtt(self, receiver, mock_device, mock_mqtt_client):
def test_stop_disconnects_device_and_mqtt(
self, receiver, mock_device, mock_mqtt_client
):
"""Test that stop disconnects device and MQTT."""
receiver.start()
receiver.stop()
@@ -53,6 +57,7 @@ class TestReceiver:
# Allow time for event processing
import time
time.sleep(0.1)
# Verify MQTT publish was called
+9 -3
View File
@@ -25,7 +25,9 @@ class TestSender:
"""Create a sender instance."""
return Sender(mock_device, mock_mqtt_client)
def test_start_connects_device_and_mqtt(self, sender, mock_device, mock_mqtt_client):
def test_start_connects_device_and_mqtt(
self, sender, mock_device, mock_mqtt_client
):
"""Test that start connects to device and MQTT."""
sender.start()
@@ -34,7 +36,9 @@ class TestSender:
mock_mqtt_client.start_background.assert_called_once()
mock_mqtt_client.subscribe.assert_called_once()
def test_stop_disconnects_device_and_mqtt(self, sender, mock_device, mock_mqtt_client):
def test_stop_disconnects_device_and_mqtt(
self, sender, mock_device, mock_mqtt_client
):
"""Test that stop disconnects device and MQTT."""
sender.start()
sender.stop()
@@ -60,7 +64,9 @@ class TestSender:
# Verify message was sent (device is mocked, so just check no error)
assert mock_device.is_connected
def test_handle_send_channel_msg_command(self, sender, mock_device, mock_mqtt_client):
def test_handle_send_channel_msg_command(
self, sender, mock_device, mock_mqtt_client
):
"""Test handling send_channel_msg command."""
mock_mqtt_client.topic_builder.parse_command_topic.return_value = (
"abc123",