diff --git a/testgres/utils.py b/testgres/utils.py index d8006d08..9760908d 100644 --- a/testgres/utils.py +++ b/testgres/utils.py @@ -11,7 +11,8 @@ import tempfile from contextlib import contextmanager -from packaging.version import Version +from packaging.version import Version, InvalidVersion +import re try: from shutil import which as find_executable except ImportError: @@ -27,8 +28,15 @@ # ports used by nodes bound_ports = set() + # re-export version type -PgVer = Version +class PgVer(Version): + def __init__(self, version: str) -> None: + try: + super().__init__(version) + except InvalidVersion: + version = re.sub(r"[a-zA-Z].*", "", version) + super().__init__(version) def reserve_port(): diff --git a/tests/test_simple.py b/tests/test_simple.py index 94420b04..45c28a21 100755 --- a/tests/test_simple.py +++ b/tests/test_simple.py @@ -901,6 +901,10 @@ def test_version_management(self): d = PgVer('15.0') e = PgVer('15rc1') f = PgVer('15beta4') + h = PgVer('15.3biha') + i = PgVer('15.3') + g = PgVer('15.3.1bihabeta1') + k = PgVer('15.3.1') self.assertTrue(a == b) self.assertTrue(b > c) @@ -908,6 +912,10 @@ def test_version_management(self): self.assertTrue(d > e) self.assertTrue(e > f) self.assertTrue(d > f) + self.assertTrue(h > f) + self.assertTrue(h == i) + self.assertTrue(g == k) + self.assertTrue(g > h) version = get_pg_version() with get_new_node() as node:
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: