]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
fix: fix handling of floating point values for connect_timeout 796/head
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Thu, 18 Apr 2024 01:38:17 +0000 (03:38 +0200)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Sat, 20 Apr 2024 21:38:39 +0000 (23:38 +0200)
docs/news.rst
psycopg/psycopg/conninfo.py
tests/test_conninfo.py

index 3b0c06ffef68a337a75c253d4472d9c8701dc710..494ebaa19b77dd00f4b9bf00a15619ff31b649d0 100644 (file)
@@ -50,6 +50,8 @@ Psycopg 3.1.19
 ^^^^^^^^^^^^^^
 
 - Fix excessive stripping of error message prefixes (:ticket:`#752`).
+- Allow to specify the ``connect_timeout`` connection parameter as float
+  (:ticket:`#796`).
 
 
 Current release
index 1401426b2ebeab32711aceba4db3643754aaa3d6..f40b58a6b7c1d155104b1acae7ada5cba179f2d6 100644 (file)
@@ -138,9 +138,9 @@ def timeout_from_conninfo(params: ConnDict) -> int:
     if value is None:
         value = _DEFAULT_CONNECT_TIMEOUT
     try:
-        timeout = int(value)
+        timeout = int(float(value))
     except ValueError:
-        raise e.ProgrammingError(f"bad value for connect_timeout: {value!r}")
+        raise e.ProgrammingError(f"bad value for connect_timeout: {value!r}") from None
 
     if timeout <= 0:
         # The sync connect function will stop on the default socket timeout
index badd5d92c8063a58d0f5e19af9b64bfcd4c06677..8e64fe3a5b181ce0865d18ddad8c78acf55fc817 100644 (file)
@@ -96,6 +96,7 @@ def test_no_munging():
         ("connect_timeout=0", _DEFAULT_CONNECT_TIMEOUT, None),
         ("connect_timeout=1", 2, None),
         ("connect_timeout=10", 10, None),
+        ("connect_timeout=5.0", 5, None),
         ("", 15, {"PGCONNECT_TIMEOUT": "15"}),
     ],
 )