diff --git a/test/dbapi/conftest.py b/test/dbapi/conftest.py index e6eb659..0d23126 100644 --- a/test/dbapi/conftest.py +++ b/test/dbapi/conftest.py @@ -2,6 +2,8 @@ import pytest +from test.utils import parse_server_version + import pg8000.dbapi @@ -57,5 +59,5 @@ def pg_version(cursor): cursor.execute("select current_setting('server_version')") retval = cursor.fetchall() version = retval[0][0] - idx = version.index(".") - return int(version[:idx]) + major = parse_server_version(version) + return int(major) diff --git a/test/native/conftest.py b/test/native/conftest.py index 12af200..5088186 100644 --- a/test/native/conftest.py +++ b/test/native/conftest.py @@ -2,6 +2,8 @@ import pytest +from test.utils import parse_server_version + import pg8000.native @@ -45,5 +47,5 @@ def fin(): def pg_version(con): retval = con.run("select current_setting('server_version')") version = retval[0][0] - idx = version.index(".") - return int(version[:idx]) + major = parse_server_version(version) + return int(major) diff --git a/test/test_utils.py b/test/test_utils.py new file mode 100644 index 0000000..254c564 --- /dev/null +++ b/test/test_utils.py @@ -0,0 +1,5 @@ +from test.utils import parse_server_version + + +def test_parse_server_version(): + assert parse_server_version("17rc1") == 17 diff --git a/test/utils.py b/test/utils.py new file mode 100644 index 0000000..7e60778 --- /dev/null +++ b/test/utils.py @@ -0,0 +1,6 @@ +import re + + +def parse_server_version(version): + major = re.match(r"\d+", version).group() # leading digits in 17.0, 17rc1 + return int(major)