Skip to content

Commit b01dfda

Browse files
AlexandrAlexandr
authored andcommitted
fix(version): add test
1 parent d510d89 commit b01dfda

4 files changed

Lines changed: 35 additions & 2 deletions

File tree

mamonsu/plugins/pgsql/driver/pool.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from .connection import Connection, ConnectionInfo
2+
from .version import extract_version
23

34
from mamonsu.lib.version import parse
45
import threading
@@ -155,8 +156,8 @@ def server_version(self, db=None):
155156
return self._cache["server_version"]["storage"][db]
156157

157158
version_string = self.query("show server_version", db)[0][0]
158-
version_string = version_string.split('-')[0]
159-
version_string = version_string.rstrip("devel")
159+
version_string = extract_version(version_string)
160+
160161
result = bytes(
161162
version_string.split(" ")[0], "utf-8")
162163
self._cache["server_version"]["storage"][db] = "{0}".format(
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import re
2+
3+
def extract_version(raw_version):
4+
match = re.search(r'\d+(?:\.\d+)*', raw_version)
5+
6+
if match:
7+
return match.group(0)
8+
9+
return ''

tests/tests/bash/test_pgsql/__init__.py

Whitespace-only changes.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import pytest
2+
3+
from mamonsu.plugins.pgsql.driver.version import extract_version
4+
5+
class TestVersion:
6+
@pytest.mark.parametrize("raw, expected", [
7+
("14.6", "14.6"),
8+
("17.2", "17.2"),
9+
("9.3.10", "9.3.10"),
10+
("15.1 (Debian 15.1-1.pgdg110+1)", "15.1"),
11+
("15.1 (Ubuntu 15.1-1.pgdg22.04+1)", "15.1"),
12+
("11.2-YB-2.17.3.0-b0", "11.2"),
13+
("1.2-xxx", "1.2"),
14+
("17.10 - TRIAL", "17.10"),
15+
("16.14-TRIAL", "16.14"),
16+
("16beta1", "16"),
17+
("17.1rc1", "17.1"),
18+
("12devel", "12"),
19+
("16.14/TRIAL", "16.14"),
20+
("", ""),
21+
])
22+
def test_extract_version(self, raw, expected):
23+
assert extract_version(raw) == expected

0 commit comments

Comments
 (0)