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