From fa8a33ff110519633e61cce6062ddd7d5c0b665d Mon Sep 17 00:00:00 2001 From: Vladimir Kotal Date: Thu, 18 Aug 2022 19:43:42 +0200 Subject: [PATCH 1/2] wrap the last exception when reporting connect failure fixes #113 --- adafruit_minimqtt/adafruit_minimqtt.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/adafruit_minimqtt/adafruit_minimqtt.py b/adafruit_minimqtt/adafruit_minimqtt.py index 56673aad..9d56d737 100644 --- a/adafruit_minimqtt/adafruit_minimqtt.py +++ b/adafruit_minimqtt/adafruit_minimqtt.py @@ -258,6 +258,7 @@ def _get_connect_socket(self, host, port, *, timeout=1): sock = None retry_count = 0 + last_exception = None while retry_count < 5 and sock is None: retry_count += 1 @@ -274,15 +275,20 @@ def _get_connect_socket(self, host, port, *, timeout=1): try: sock.connect((connect_host, port)) - except MemoryError: + except MemoryError as exc: sock.close() sock = None - except OSError: + last_exception = exc + except OSError as exc: sock.close() sock = None + last_exception = exc if sock is None: - raise RuntimeError("Repeated socket failures") + if last_exception: + raise RuntimeError("Repeated socket failures") from last_exception + else: + raise RuntimeError("Repeated socket failures") self._backwards_compatible_sock = not hasattr(sock, "recv_into") return sock From 4c16b42924adf7d981992c8005e3e1dea98bbc69 Mon Sep 17 00:00:00 2001 From: Vladimir Kotal Date: Thu, 18 Aug 2022 19:45:45 +0200 Subject: [PATCH 2/2] fix pylint --- adafruit_minimqtt/adafruit_minimqtt.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/adafruit_minimqtt/adafruit_minimqtt.py b/adafruit_minimqtt/adafruit_minimqtt.py index 9d56d737..2222bd08 100644 --- a/adafruit_minimqtt/adafruit_minimqtt.py +++ b/adafruit_minimqtt/adafruit_minimqtt.py @@ -287,8 +287,8 @@ def _get_connect_socket(self, host, port, *, timeout=1): if sock is None: if last_exception: raise RuntimeError("Repeated socket failures") from last_exception - else: - raise RuntimeError("Repeated socket failures") + + raise RuntimeError("Repeated socket failures") self._backwards_compatible_sock = not hasattr(sock, "recv_into") return sock