From c13b106b5dbfe5103e654f5b1f321ecde3d56146 Mon Sep 17 00:00:00 2001 From: "v.shepard" Date: Thu, 20 Jul 2023 12:31:41 +0200 Subject: [PATCH] Support special version --- testgres/utils.py | 12 ++++++++++-- tests/test_simple.py | 8 ++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) 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: