Skip to content

Commit 592b602

Browse files
demonolockv.shepard
andauthored
Support special version (#85)
Co-authored-by: v.shepard <v.shepard@postgrespro.ru>
1 parent 94f9b35 commit 592b602

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

testgres/utils.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
import tempfile
1212

1313
from contextlib import contextmanager
14-
from packaging.version import Version
14+
from packaging.version import Version, InvalidVersion
15+
import re
1516
try:
1617
from shutil import which as find_executable
1718
except ImportError:
@@ -27,8 +28,15 @@
2728
# ports used by nodes
2829
bound_ports = set()
2930

31+
3032
# re-export version type
31-
PgVer = Version
33+
class PgVer(Version):
34+
def __init__(self, version: str) -> None:
35+
try:
36+
super().__init__(version)
37+
except InvalidVersion:
38+
version = re.sub(r"[a-zA-Z].*", "", version)
39+
super().__init__(version)
3240

3341

3442
def reserve_port():

tests/test_simple.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -901,13 +901,21 @@ def test_version_management(self):
901901
d = PgVer('15.0')
902902
e = PgVer('15rc1')
903903
f = PgVer('15beta4')
904+
h = PgVer('15.3biha')
905+
i = PgVer('15.3')
906+
g = PgVer('15.3.1bihabeta1')
907+
k = PgVer('15.3.1')
904908

905909
self.assertTrue(a == b)
906910
self.assertTrue(b > c)
907911
self.assertTrue(a > c)
908912
self.assertTrue(d > e)
909913
self.assertTrue(e > f)
910914
self.assertTrue(d > f)
915+
self.assertTrue(h > f)
916+
self.assertTrue(h == i)
917+
self.assertTrue(g == k)
918+
self.assertTrue(g > h)
911919

912920
version = get_pg_version()
913921
with get_new_node() as node:

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

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:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy