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:
|
class VersionManager:
|
||||||
def __init__(self, version="0.0.1"):
|
def __init__(self, version=None):
|
||||||
version = version.split(".")[:3]
|
if not version:
|
||||||
try:
|
version = "0.0.1"
|
||||||
for val in version:
|
|
||||||
assert val.isdecimal(), "Error occured while parsing version!"
|
|
||||||
except AssertionError as error:
|
|
||||||
print(error)
|
|
||||||
|
|
||||||
self.version = ".".join(version)
|
parts = version.split(".")[:3]
|
||||||
self.history = [self.version]
|
|
||||||
|
|
||||||
def major(self) -> None:
|
if not all(p.isdecimal() for p in parts):
|
||||||
pass
|
raise ValueError("Error occured while parsing version!")
|
||||||
|
|
||||||
def minor(self) -> None:
|
nums = [int(p) for p in parts]
|
||||||
pass
|
|
||||||
|
|
||||||
def path(self) -> None:
|
while len(nums) < 3:
|
||||||
pass
|
nums.append(0)
|
||||||
|
|
||||||
def rollback(self) -> None:
|
self.major_v, self.minor_v, self.patch_v = nums
|
||||||
pass
|
self.history = []
|
||||||
|
|
||||||
def release(self) -> str:
|
def _save(self):
|
||||||
return f"{self.version}"
|
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")
|
def minor(self):
|
||||||
print(test.version)
|
self._save()
|
||||||
print(test.history)
|
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