Daniel Gustafsson <dan...@yesql.se> writes:
>> On 19 Apr 2025, at 18:17, Tom Lane <t...@sss.pgh.pa.us> wrote:
>> The reason I bring this up is that I found out the hard way
>> that src/test/modules/oauth_validator fails on RHEL8, because
>> its oauth_server.py script is not compatible with the 3.6.8
>> version of Python supplied by this distro.

> Do you have the error message/log for the failure handy?

The first problem is that this Python version seems not to
like assignments embedded in if statements:

  File "t/oauth_server.py", line 319
    if err := self._get_param("error_code", None):
            ^
SyntaxError: invalid syntax

I was able to work around that with the attached quick hack.
But then I get

Traceback (most recent call last):
  File "t/oauth_server.py", line 19, in <module>
    class OAuthHandler(http.server.BaseHTTPRequestHandler):
  File "t/oauth_server.py", line 26, in OAuthHandler
    JsonObject = dict[str, object]  # TypeAlias is not available until 3.10
TypeError: 'type' object is not subscriptable

which I have no idea how to work around.

                        regards, tom lane

diff --git a/src/test/modules/oauth_validator/t/oauth_server.py b/src/test/modules/oauth_validator/t/oauth_server.py
index 5bc30be87fd..133fe496cfc 100755
--- a/src/test/modules/oauth_validator/t/oauth_server.py
+++ b/src/test/modules/oauth_validator/t/oauth_server.py
@@ -316,11 +316,13 @@ class OAuthHandler(http.server.BaseHTTPRequestHandler):
         return resp
 
     def token(self) -> JsonObject:
-        if err := self._get_param("error_code", None):
+        err = self._get_param("error_code", None)
+        if err:
             self._response_code = self._get_param("error_status", 400)
 
             resp = {"error": err}
-            if desc := self._get_param("error_desc", ""):
+            desc = self._get_param("error_desc", "")
+            if desc:
                 resp["error_description"] = desc
 
             return resp

Reply via email to