Files
LOGAR/tests/test_common_version.py
2026-10-02 23:14:55 +02:00

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()