Skip to content

Commit

Permalink
fixup! Add version parcing for mariadb utility
Browse files Browse the repository at this point in the history
  • Loading branch information
Mikhail Sandakov committed Dec 30, 2024
1 parent 890a9e9 commit cda810c
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 13 deletions.
6 changes: 5 additions & 1 deletion pleskdistup/common/src/mariadb.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import typing

from . import dist, log
import re


def is_version_larger(left: str, right: str) -> bool:
Expand Down Expand Up @@ -58,7 +59,10 @@ def _extract_from_mysql_util(self, util_output: str):

def _extract_from_mariadb_util(self, util_output: str):
# String example: "mariadb from 11.6.2-MariaDB, client 15.2 for Linux (x86_64) using EditLine wrapper"
major_part, minor_part, patch_part = util_output.split("from ")[1].split("-MariaDB")[0].split(".")[:3]
match = re.search(r"mariadb from (\d+)\.(\d+)\.(\d+)-MariaDB", util_output)
if not match:
raise ValueError(f"Cannot extract mariadb version from '{util_output}'")
major_part, minor_part, patch_part = match.groups()
self.major = int(major_part)
self.minor = int(minor_part)
self.patch = int(patch_part)
Expand Down
24 changes: 12 additions & 12 deletions pleskdistup/common/tests/mariadbtests.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,22 @@

class MariaDBVersionsTests(unittest.TestCase):
def test_parse_simple(self):
php = mariadb.MariaDBVersion("10.6.12")
self.assertEqual(php.major, 10)
self.assertEqual(php.minor, 6)
self.assertEqual(php.patch, 12)
mariadb_ver = mariadb.MariaDBVersion("10.6.12")
self.assertEqual(mariadb_ver.major, 10)
self.assertEqual(mariadb_ver.minor, 6)
self.assertEqual(mariadb_ver.patch, 12)

def test_parse_utility_output(self):
php = mariadb.MariaDBVersion("mysql Ver 15.1 Distrib 10.6.12-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper")
self.assertEqual(php.major, 10)
self.assertEqual(php.minor, 6)
self.assertEqual(php.patch, 12)
mariadb_ver = mariadb.MariaDBVersion("mysql Ver 15.1 Distrib 10.6.12-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper")
self.assertEqual(mariadb_ver.major, 10)
self.assertEqual(mariadb_ver.minor, 6)
self.assertEqual(mariadb_ver.patch, 12)

def test_parse_utility_output_no_distrib(self):
php = mariadb.MariaDBVersion("mariadb from 11.6.2-MariaDB, client 15.2 for Linux (x86_64) using EditLine wrapper")
self.assertEqual(php.major, 11)
self.assertEqual(php.minor, 6)
self.assertEqual(php.patch, 2)
mariadb_ver = mariadb.MariaDBVersion("mariadb from 11.6.2-MariaDB, client 15.2 for Linux (x86_64) using EditLine wrapper")
self.assertEqual(mariadb_ver.major, 11)
self.assertEqual(mariadb_ver.minor, 6)
self.assertEqual(mariadb_ver.patch, 2)

def test_parse_wrong_string(self):
with self.assertRaises(ValueError):
Expand Down

0 comments on commit cda810c

Please sign in to comment.