CI Test Suite / Run Component Tests & Pipeline Verification (push) Failing after 1m18s
53 lines
2.1 KiB
Python
53 lines
2.1 KiB
Python
"""
|
|
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()
|