Compare commits
No commits in common. "98578c5d06edf70619b8bcc767b0e1c4a132bcb1" and "c7aac676a18352e1b556895831192b71a4a4e0fa" have entirely different histories.
98578c5d06
...
c7aac676a1
@ -1,52 +0,0 @@
|
|||||||
class VersionManager:
|
|
||||||
def __init__(self, version=""):
|
|
||||||
self.major_ = 0
|
|
||||||
self.minor_ = 0
|
|
||||||
self.patch_ = 0
|
|
||||||
|
|
||||||
if not version:
|
|
||||||
self.patch_ = 1
|
|
||||||
else:
|
|
||||||
parts = version.split(".")
|
|
||||||
try:
|
|
||||||
if len(parts) >= 1 and parts[0]:
|
|
||||||
self.major_ = int(parts[0])
|
|
||||||
if len(parts) >= 2:
|
|
||||||
self.minor_ = int(parts[1])
|
|
||||||
if len(parts) >= 3:
|
|
||||||
self.patch_ = int(parts[2])
|
|
||||||
except ValueError:
|
|
||||||
raise ValueError("Error occured while parsing version!")
|
|
||||||
|
|
||||||
self.version_history = [(self.major_, self.minor_, self.patch_)]
|
|
||||||
|
|
||||||
def _save_history(self):
|
|
||||||
self.version_history.append((self.major_, self.minor_, self.patch_))
|
|
||||||
|
|
||||||
def major(self):
|
|
||||||
self._save_history()
|
|
||||||
self.major_ += 1
|
|
||||||
self.minor_ = 0
|
|
||||||
self.patch_ = 0
|
|
||||||
return self
|
|
||||||
|
|
||||||
def minor(self):
|
|
||||||
self._save_history()
|
|
||||||
self.minor_ += 1
|
|
||||||
self.patch_ = 0
|
|
||||||
return self
|
|
||||||
|
|
||||||
def patch(self):
|
|
||||||
self._save_history()
|
|
||||||
self.patch_ += 1
|
|
||||||
return self
|
|
||||||
|
|
||||||
def rollback(self):
|
|
||||||
if len(self.version_history) <= 1:
|
|
||||||
raise ValueError("Cannot rollback!")
|
|
||||||
|
|
||||||
self.major_, self.minor_, self.patch_ = self.version_history.pop()
|
|
||||||
return self
|
|
||||||
|
|
||||||
def release(self):
|
|
||||||
return f"{self.major_}.{self.minor_}.{self.patch_}"
|
|
||||||
@ -1,30 +0,0 @@
|
|||||||
from src.version_manager import VersionManager
|
|
||||||
|
|
||||||
|
|
||||||
def run_tests():
|
|
||||||
# Test it_1: Initialization
|
|
||||||
assert VersionManager().release() == "0.0.1"
|
|
||||||
assert VersionManager("1.2.3").release() == "1.2.3"
|
|
||||||
assert VersionManager("1").release() == "1.0.0"
|
|
||||||
|
|
||||||
# Test it_5: Rollbacks
|
|
||||||
vm = VersionManager().major().rollback()
|
|
||||||
assert vm.release() == "0.0.1"
|
|
||||||
|
|
||||||
# Test it_7: Exception Handling
|
|
||||||
try:
|
|
||||||
VersionManager("a")
|
|
||||||
except Exception as e:
|
|
||||||
assert str(e) == "Error occured while parsing version!"
|
|
||||||
|
|
||||||
# Test it_8: Rollback failure
|
|
||||||
vm2 = VersionManager()
|
|
||||||
try:
|
|
||||||
vm2.rollback()
|
|
||||||
except Exception as e:
|
|
||||||
assert str(e) == "Cannot rollback!"
|
|
||||||
|
|
||||||
print("All tests passed!")
|
|
||||||
|
|
||||||
|
|
||||||
run_tests()
|
|
||||||
Loading…
x
Reference in New Issue
Block a user