diff tests/tinyproxy.py @ 48886:b5fe10b3c9f5 stable

py3: don?t subscript socket.error On Python 2, socket.error was subscriptable. On Python 3, socket.error is an alias to OSError and is not subscriptable. The except block passes the exception to self.send_error(). This fails on both Python 2 (if it was executed) and Python 3, as it expects a string. Getting the attribute .strerror works on Python 2 and Python 3, and has the same effect as the previous code on Python 2.
author Manuel Jacob <me@manueljacob.de>
date Thu, 02 Jun 2022 04:39:49 +0200
parents 23f5ed6dbcb1
children 127d33e63d1a
line wrap: on
line diff
--- a/tests/tinyproxy.py	Thu Jun 02 02:05:11 2022 +0200
+++ b/tests/tinyproxy.py	Thu Jun 02 04:39:49 2022 +0200
@@ -74,12 +74,8 @@
         print("\t" "connect to %s:%d" % host_port)
         try:
             soc.connect(host_port)
-        except socket.error as arg:
-            try:
-                msg = arg[1]
-            except (IndexError, TypeError):
-                msg = arg
-            self.send_error(404, msg)
+        except socket.error as e:
+            self.send_error(404, e.strerror)
             return 0
         return 1