mirror of
https://github.com/meshtastic/python.git
synced 2026-06-16 11:29:58 -04:00
Handle NONE errorReason in onResponseTraceRoute and add regression test
ROUTING_APP with errorReason NONE is an ACK (success), not an error. Only print failure message for non-NONE error reasons. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -689,7 +689,8 @@ class MeshInterface: # pylint: disable=R0902
|
|||||||
"""on response for trace route"""
|
"""on response for trace route"""
|
||||||
if p["decoded"]["portnum"] == "ROUTING_APP":
|
if p["decoded"]["portnum"] == "ROUTING_APP":
|
||||||
error = p["decoded"]["routing"]["errorReason"]
|
error = p["decoded"]["routing"]["errorReason"]
|
||||||
print(f"Traceroute failed: {error}")
|
if error != "NONE":
|
||||||
|
print(f"Traceroute failed: {error}")
|
||||||
self._acknowledgment.receivedTraceRoute = True
|
self._acknowledgment.receivedTraceRoute = True
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -777,3 +777,23 @@ def test_onResponseTraceRoute_routing_error(capsys):
|
|||||||
assert iface._acknowledgment.receivedTraceRoute is True
|
assert iface._acknowledgment.receivedTraceRoute is True
|
||||||
out, _ = capsys.readouterr()
|
out, _ = capsys.readouterr()
|
||||||
assert "Traceroute failed: MAX_RETRANSMIT" in out
|
assert "Traceroute failed: MAX_RETRANSMIT" in out
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.unit
|
||||||
|
@pytest.mark.usefixtures("reset_mt_config")
|
||||||
|
def test_onResponseTraceRoute_routing_none(capsys):
|
||||||
|
"""Test that onResponseTraceRoute does not print error for ROUTING_APP with NONE errorReason."""
|
||||||
|
iface = MeshInterface(noProto=True)
|
||||||
|
|
||||||
|
packet = {
|
||||||
|
"decoded": {
|
||||||
|
"portnum": "ROUTING_APP",
|
||||||
|
"routing": {"errorReason": "NONE"},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
iface.onResponseTraceRoute(packet)
|
||||||
|
|
||||||
|
assert iface._acknowledgment.receivedTraceRoute is True
|
||||||
|
out, _ = capsys.readouterr()
|
||||||
|
assert "Traceroute failed" not in out
|
||||||
|
|||||||
Reference in New Issue
Block a user