Skip to content

Commit c16437b

Browse files
author
v.shepard
committed
Support special version try #2
1 parent b9d4c8f commit c16437b

File tree

2 files changed

+34
-6
lines changed

2 files changed

+34
-6
lines changed

testgres/utils.py

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
from contextlib import contextmanager
1414
from packaging.version import Version
15+
import re
1516

1617
try:
1718
from shutil import which as find_executable
@@ -31,9 +32,38 @@
3132

3233
# re-export version type
3334
class PgVer(Version):
34-
def __init__(self, version: str) -> None:
35-
version = version.replace('biha', '')
36-
super().__init__(version)
35+
_VERSION_PATTERN = r"""
36+
v?
37+
(?:
38+
(?:(?P<epoch>[0-9]+)!)? # epoch
39+
(?P<release>[0-9]+(?:\.[0-9]+)*) # release segment
40+
(?P<pre> # pre-release
41+
[-_\.]?
42+
(?P<pre_l>(a|b|c|rc|alpha|beta|pre|preview|biha))
43+
[-_\.]?
44+
(?P<pre_n>[0-9]+)?
45+
)?
46+
(?P<post> # post release
47+
(?:-(?P<post_n1>[0-9]+))
48+
|
49+
(?:
50+
[-_\.]?
51+
(?P<post_l>post|rev|r)
52+
[-_\.]?
53+
(?P<post_n2>[0-9]+)?
54+
)
55+
)?
56+
(?P<dev> # dev release
57+
[-_\.]?
58+
(?P<dev_l>dev)
59+
[-_\.]?
60+
(?P<dev_n>[0-9]+)?
61+
)?
62+
)
63+
(?:\+(?P<local>[a-z0-9]+(?:[-_\.][a-z0-9]+)*))? # local version
64+
"""
65+
66+
_regex = re.compile(r"^\s*" + _VERSION_PATTERN + r"\s*$", re.VERBOSE | re.IGNORECASE)
3767

3868

3969
def reserve_port():
@@ -213,8 +243,6 @@ def get_pg_version():
213243
.partition('devel')[0] \
214244
.partition('beta')[0] \
215245
.partition('rc')[0]
216-
if 'biha' in version:
217-
version = version.replace('biha', '')
218246
return version
219247

220248

tests/test_simple.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -902,7 +902,7 @@ def test_version_management(self):
902902
e = PgVer('15rc1')
903903
f = PgVer('15beta4')
904904
g = PgVer('15.2beta4')
905-
h = PgVer('15.2biha')
905+
h = PgVer('15.2-biha')
906906

907907
self.assertTrue(a == b)
908908
self.assertTrue(b > c)

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