Skip to content

Commit d5eaece

Browse files
committed
Add traffic management unit tests
1 parent 545c3ab commit d5eaece

File tree

2 files changed

+46
-0
lines changed

2 files changed

+46
-0
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
"""Meshtastic unit tests for traffic management handling in mesh_interface.py."""
2+
3+
import pytest
4+
5+
from ..mesh_interface import MeshInterface
6+
from ..protobuf import mesh_pb2
7+
8+
9+
@pytest.mark.unit
10+
@pytest.mark.usefixtures("reset_mt_config")
11+
def test_handleFromRadio_with_traffic_management_module_config():
12+
"""Test _handleFromRadio with moduleConfig.traffic_management."""
13+
iface = MeshInterface(noProto=True)
14+
from_radio = mesh_pb2.FromRadio()
15+
from_radio.moduleConfig.traffic_management.enabled = True
16+
from_radio.moduleConfig.traffic_management.rate_limit_enabled = True
17+
18+
iface._handleFromRadio(from_radio.SerializeToString())
19+
20+
assert iface.localNode.moduleConfig.traffic_management.enabled is True
21+
assert iface.localNode.moduleConfig.traffic_management.rate_limit_enabled is True
22+
iface.close()

meshtastic/tests/test_node.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -794,6 +794,30 @@ def test_writeConfig_with_no_radioConfig(capsys):
794794
assert err == ""
795795

796796

797+
@pytest.mark.unit
798+
@pytest.mark.usefixtures("reset_mt_config")
799+
def test_writeConfig_traffic_management():
800+
"""Test writeConfig with traffic_management module config."""
801+
iface = MagicMock(autospec=SerialInterface)
802+
anode = Node(iface, 123, noProto=True)
803+
anode.moduleConfig.traffic_management.enabled = True
804+
anode.moduleConfig.traffic_management.rate_limit_enabled = True
805+
806+
sent_admin = []
807+
808+
def capture_send(p, *args, **kwargs):
809+
sent_admin.append(p)
810+
811+
with patch.object(anode, "_sendAdmin", side_effect=capture_send):
812+
anode.writeConfig("traffic_management")
813+
814+
assert len(sent_admin) == 1
815+
assert sent_admin[0].HasField("set_module_config")
816+
assert sent_admin[0].set_module_config.HasField("traffic_management")
817+
assert sent_admin[0].set_module_config.traffic_management.enabled is True
818+
assert sent_admin[0].set_module_config.traffic_management.rate_limit_enabled is True
819+
820+
797821
# TODO
798822
# @pytest.mark.unit
799823
# def test_writeConfig(caplog):

0 commit comments

Comments
 (0)