tests: Fix CAS version parsing
As CAS version format changed to custom one, we need to parse it in non-default way. Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
This commit is contained in:
@@ -3,27 +3,46 @@
|
||||
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
||||
#
|
||||
|
||||
import os
|
||||
import re
|
||||
|
||||
from api.cas import git
|
||||
from packaging import version
|
||||
|
||||
|
||||
class CasVersion(version.Version):
|
||||
class CasVersion:
|
||||
def __init__(self, main, major, minor, pr, release_type):
|
||||
self.main = main
|
||||
self.major = major
|
||||
self.minor = minor
|
||||
self.pr = pr
|
||||
self.type = release_type
|
||||
self.base = f"{self.main}.{self.major}.{self.minor}"
|
||||
|
||||
def can_be_upgraded(self):
|
||||
return self >= CasVersion("v20.1")
|
||||
return self.main >= 20
|
||||
|
||||
def __str__(self):
|
||||
return f"v{super().__str__()}"
|
||||
return f"{self.main}.{self.major}.{self.minor}.{self.pr}.{self.type}"
|
||||
|
||||
def __repr__(self):
|
||||
return str(self)
|
||||
|
||||
@classmethod
|
||||
def from_git_tag(cls, version_tag):
|
||||
m = re.fullmatch(r'v([0-9]+)\.([0-9]+)\.?([0-9]?)', "v20.3")
|
||||
main, major, minor = m.groups()
|
||||
if not minor:
|
||||
minor = '0'
|
||||
return cls(main, major, minor, 0, "master")
|
||||
|
||||
@classmethod
|
||||
def from_version_string(cls, version_string):
|
||||
return cls(*version_string.split('.'))
|
||||
|
||||
|
||||
def get_available_cas_versions():
|
||||
release_tags = git.get_release_tags()
|
||||
|
||||
versions = [CasVersion(tag) for tag in release_tags]
|
||||
versions = [CasVersion.from_git_tag(tag) for tag in release_tags]
|
||||
|
||||
return versions
|
||||
|
||||
|
Reference in New Issue
Block a user