From 8f4c421c69aa412f64176c3d2034e56db0b88fd2 Mon Sep 17 00:00:00 2001 From: Vladimir Kotal Date: Mon, 10 Feb 2025 08:10:57 +0100 Subject: [PATCH] add test for the not connected case --- tests/test_reconnect.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/tests/test_reconnect.py b/tests/test_reconnect.py index 5e0a5331..bd9d3926 100644 --- a/tests/test_reconnect.py +++ b/tests/test_reconnect.py @@ -205,3 +205,43 @@ def test_reconnect(topics, to_send) -> None: assert user_data.get("disconnect") == True assert mqtt_client._connection_manager.close_cnt == 1 assert set(user_data.get("topics")) == set([t[0] for t in topics]) + + +def test_reconnect_not_connected() -> None: + """ + Test reconnect() handling not connected. + """ + logging.basicConfig() + logger = logging.getLogger(__name__) + logger.setLevel(logging.DEBUG) + + host = "localhost" + port = 1883 + + user_data = {"topics": [], "disconnect": False} + mqtt_client = MQTT.MQTT( + broker=host, + port=port, + ssl_context=ssl.create_default_context(), + connect_retries=1, + user_data=user_data, + ) + + mocket = Mocket( + bytearray( + [ + 0x20, # CONNACK + 0x02, + 0x00, + 0x00, + ] + ) + ) + mqtt_client._connection_manager = FakeConnectionManager(mocket) + + mqtt_client.logger = logger + mqtt_client.on_disconnect = handle_disconnect + mqtt_client.reconnect() + + assert user_data.get("disconnect") == False + assert mqtt_client._connection_manager.close_cnt == 0