Phase 1 of manual channel management

This commit is contained in:
Jack Kingsman
2026-03-12 14:01:00 -07:00
parent 22ca5410ee
commit 5c85a432c8
7 changed files with 45 additions and 8 deletions
+2
View File
@@ -475,6 +475,7 @@ class TestManualDisconnectCleanup:
mock_mc.connection_manager = connection_manager
rm._meshcore = mock_mc
rm._setup_complete = True
rm.max_channels = 8
rm.path_hash_mode = 2
rm.path_hash_mode_supported = True
@@ -486,6 +487,7 @@ class TestManualDisconnectCleanup:
assert reconnect_task is not None and reconnect_task.cancelled()
assert rm.meshcore is None
assert rm.is_setup_complete is False
assert rm.max_channels == 40
assert rm.path_hash_mode == 0
assert rm.path_hash_mode_supported is False
+5 -1
View File
@@ -99,7 +99,9 @@ class TestRunPostConnectSetup:
initial_mc.start_auto_message_fetching = AsyncMock()
replacement_mc = MagicMock()
replacement_mc.commands.send_device_query = AsyncMock(return_value=None)
replacement_mc.commands.send_device_query = AsyncMock(
return_value=MagicMock(payload={"max_channels": 8})
)
replacement_mc.commands.set_flood_scope = AsyncMock(return_value=None)
replacement_mc._reader = MagicMock()
replacement_mc._reader.handle_rx = AsyncMock()
@@ -110,6 +112,7 @@ class TestRunPostConnectSetup:
radio_manager._setup_lock = None
radio_manager._setup_in_progress = False
radio_manager._setup_complete = False
radio_manager.max_channels = 40
radio_manager.path_hash_mode = 0
radio_manager.path_hash_mode_supported = False
@@ -141,3 +144,4 @@ class TestRunPostConnectSetup:
mock_sync_time.assert_awaited_once_with(replacement_mc)
replacement_mc.start_auto_message_fetching.assert_awaited_once()
initial_mc.start_auto_message_fetching.assert_not_called()
assert radio_manager.max_channels == 8
+3 -2
View File
@@ -1037,7 +1037,7 @@ class TestSyncAndOffloadChannels:
@pytest.mark.asyncio
async def test_iterates_all_40_channel_slots(self):
"""All 40 channel slots are checked."""
"""All firmware-reported channel slots are checked."""
from app.radio_sync import sync_and_offload_channels
empty_result = MagicMock()
@@ -1045,10 +1045,11 @@ class TestSyncAndOffloadChannels:
mock_mc = MagicMock()
mock_mc.commands.get_channel = AsyncMock(return_value=empty_result)
radio_manager.max_channels = 8
result = await sync_and_offload_channels(mock_mc)
assert mock_mc.commands.get_channel.call_count == 40
assert mock_mc.commands.get_channel.call_count == 8
assert result["synced"] == 0
assert result["cleared"] == 0