feat: version manager kata done. test: testcase for version manager kata started
This commit is contained in:
parent
ec105d44be
commit
8f3cd117ef
@ -1,31 +1,47 @@
|
||||
class VersionManager:
|
||||
def __init__(self, version="0.0.1"):
|
||||
version = version.split(".")[:3]
|
||||
try:
|
||||
for val in version:
|
||||
assert val.isdecimal(), "Error occured while parsing version!"
|
||||
except AssertionError as error:
|
||||
print(error)
|
||||
def __init__(self, version=None):
|
||||
if not version:
|
||||
version = "0.0.1"
|
||||
|
||||
self.version = ".".join(version)
|
||||
self.history = [self.version]
|
||||
parts = version.split(".")[:3]
|
||||
|
||||
def major(self) -> None:
|
||||
pass
|
||||
if not all(p.isdecimal() for p in parts):
|
||||
raise ValueError("Error occured while parsing version!")
|
||||
|
||||
def minor(self) -> None:
|
||||
pass
|
||||
nums = [int(p) for p in parts]
|
||||
|
||||
def path(self) -> None:
|
||||
pass
|
||||
while len(nums) < 3:
|
||||
nums.append(0)
|
||||
|
||||
def rollback(self) -> None:
|
||||
pass
|
||||
self.major_v, self.minor_v, self.patch_v = nums
|
||||
self.history = []
|
||||
|
||||
def release(self) -> str:
|
||||
return f"{self.version}"
|
||||
def _save(self):
|
||||
self.history.append((self.major_v, self.minor_v, self.patch_v))
|
||||
|
||||
def major(self):
|
||||
self._save()
|
||||
self.major_v += 1
|
||||
self.minor_v = 0
|
||||
self.patch_v = 0
|
||||
return self
|
||||
|
||||
test = VersionManager("1.1")
|
||||
print(test.version)
|
||||
print(test.history)
|
||||
def minor(self):
|
||||
self._save()
|
||||
self.minor_v += 1
|
||||
self.patch_v = 0
|
||||
return self
|
||||
|
||||
def patch(self):
|
||||
self._save()
|
||||
self.patch_v += 1
|
||||
return self
|
||||
|
||||
def rollback(self):
|
||||
if not self.history:
|
||||
raise Exception("Cannot rollback!")
|
||||
self.major_v, self.minor_v, self.patch_v = self.history.pop()
|
||||
return self
|
||||
|
||||
def release(self):
|
||||
return f"{self.major_v}.{self.minor_v}.{self.patch_v}"
|
||||
|
||||
@ -0,0 +1,7 @@
|
||||
from src.codewars.kata_version_mamanger import VersionManager
|
||||
|
||||
|
||||
def test_lamp():
|
||||
v = VersionManager("1.1.1")
|
||||
|
||||
assert v.release() == "1.1.1"
|
||||
Loading…
x
Reference in New Issue
Block a user