Organize codebase into hub, clients, and common packages with backward compatibility and comprehensive unit test suites
CI Test Suite / Run Component Tests & Pipeline Verification (push) Failing after 1m18s
CI Test Suite / Run Component Tests & Pipeline Verification (push) Failing after 1m18s
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
"""
|
||||
LOGAR - Comprehensive Unit Tests for Common Version Module
|
||||
100% test coverage for semantic versioning, version parsing, comparisons, and edge cases.
|
||||
"""
|
||||
|
||||
import unittest
|
||||
from src.common.version import (
|
||||
LOGAR_VERSION,
|
||||
parse_version,
|
||||
compare_versions,
|
||||
is_newer_version
|
||||
)
|
||||
|
||||
|
||||
class TestCommonVersion(unittest.TestCase):
|
||||
def test_version_constants(self):
|
||||
self.assertIsInstance(LOGAR_VERSION, str)
|
||||
self.assertTrue(len(LOGAR_VERSION) > 0)
|
||||
|
||||
def test_parse_version_valid(self):
|
||||
self.assertEqual(parse_version("1.2.3.4"), (1, 2, 3, 4))
|
||||
self.assertEqual(parse_version("v1.2.3.4"), (1, 2, 3, 4))
|
||||
self.assertEqual(parse_version("V1.2.3"), (1, 2, 3, 0))
|
||||
self.assertEqual(parse_version("1.2"), (1, 2, 0, 0))
|
||||
self.assertEqual(parse_version("1"), (1, 0, 0, 0))
|
||||
self.assertEqual(parse_version("1.2.3.4.5"), (1, 2, 3, 4, 5))
|
||||
|
||||
def test_parse_version_invalid_and_edge_cases(self):
|
||||
self.assertEqual(parse_version(None), (0, 0, 0, 0))
|
||||
self.assertEqual(parse_version(""), (0, 0, 0, 0))
|
||||
self.assertEqual(parse_version(" "), (0, 0, 0, 0))
|
||||
self.assertEqual(parse_version("invalid"), (0, 0, 0, 0))
|
||||
self.assertEqual(parse_version("v1.alpha.2"), (1, 0, 0, 0))
|
||||
|
||||
def test_compare_versions(self):
|
||||
self.assertEqual(compare_versions("1.0.0.0", "1.0.0.0"), 0)
|
||||
self.assertEqual(compare_versions("1.0.0.1", "1.0.0.0"), 1)
|
||||
self.assertEqual(compare_versions("1.0.0.0", "1.0.0.1"), -1)
|
||||
self.assertEqual(compare_versions("2.0.0.0", "1.9.9.9"), 1)
|
||||
self.assertEqual(compare_versions("0.3.5.2", "0.3.5.2"), 0)
|
||||
self.assertEqual(compare_versions("0.3.6.0", "0.3.5.2"), 1)
|
||||
self.assertEqual(compare_versions("0.3.5.1", "0.3.5.2"), -1)
|
||||
|
||||
def test_is_newer_version(self):
|
||||
self.assertTrue(is_newer_version("1.0.0.1", "1.0.0.0"))
|
||||
self.assertFalse(is_newer_version("1.0.0.0", "1.0.0.0"))
|
||||
self.assertFalse(is_newer_version("0.9.9.9", "1.0.0.0"))
|
||||
self.assertTrue(is_newer_version("v0.3.6.0", "0.3.5.2"))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user