From 5033beacc96db2a09857f5c70d65e7ada6cf6be8 Mon Sep 17 00:00:00 2001 From: Jack Kingsman Date: Wed, 13 May 2026 16:36:45 -0700 Subject: [PATCH] Add test and simplify strip logic --- app/fanout/community_mqtt.py | 3 +-- tests/test_community_mqtt.py | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/app/fanout/community_mqtt.py b/app/fanout/community_mqtt.py index b728971..42c870f 100644 --- a/app/fanout/community_mqtt.py +++ b/app/fanout/community_mqtt.py @@ -362,8 +362,7 @@ class CommunityMqttPublisher(BaseMqttPublisher): kwargs["username"] = s.community_mqtt_username or None kwargs["password"] = s.community_mqtt_password or None if transport == "websockets": - ws_path = getattr(s, "community_mqtt_websocket_path", None) - kwargs["websocket_path"] = ws_path.strip() if ws_path and ws_path.strip() else "/" + kwargs["websocket_path"] = (s.community_mqtt_websocket_path or "").strip() or "/" return kwargs def _on_connected(self, settings: object) -> tuple[str, str]: diff --git a/tests/test_community_mqtt.py b/tests/test_community_mqtt.py index ed44be9..aa7755d 100644 --- a/tests/test_community_mqtt.py +++ b/tests/test_community_mqtt.py @@ -757,6 +757,26 @@ class TestLwtAndStatusPublish: assert kwargs["websocket_path"] == "/mqtt" + def test_build_client_kwargs_empty_websocket_path_defaults_to_root(self): + pub = CommunityMqttPublisher() + private_key, public_key = _make_test_keys() + + for empty_value in ("", " ", None): + settings = _make_community_settings( + community_mqtt_iata="MTL", + community_mqtt_websocket_path=empty_value, + ) + + with ( + patch("app.keystore.get_private_key", return_value=private_key), + patch("app.keystore.get_public_key", return_value=public_key), + patch("app.radio.radio_manager") as mock_radio, + ): + mock_radio.meshcore = None + kwargs = pub._build_client_kwargs(settings) + + assert kwargs["websocket_path"] == "/", f"Failed for {empty_value!r}" + def test_build_client_kwargs_supports_tcp_transport_and_custom_audience(self): pub = CommunityMqttPublisher() private_key, public_key = _make_test_keys()