@@ -24,54 +24,35 @@ class TestVersionComparator(unittest.TestCase):
2424 def setUp (self ):
2525 self .version_comparator = VersionComparator ()
2626
27- def test_linux_version_comparator (self ):
28- # Test extract version logic
29- self .assertEqual (self .version_comparator .extract_version_nums ("Microsoft.CPlat.Core.LinuxPatchExtension-1.2.25" ), "1.2.25" )
30- self .assertEqual (self .version_comparator .extract_version_nums ("Microsoft.CPlat.Core.LinuxPatchExtension-1.2.25-abc" ), "1.2.25" )
31- self .assertEqual (self .version_comparator .extract_version_nums ("Microsoft.CPlat.Core.LinuxPatchExtension-1.2.25+abc.123" ), "1.2.25" )
32- self .assertEqual (self .version_comparator .extract_version_nums ("Microsoft.CPlat.Core.LinuxPatchExtension-1.2.25-abc+def.123" ), "1.2.25" )
33- self .assertEqual (self .version_comparator .extract_version_nums ("Microsoft.CPlat.Core.LinuxPatchExtension-1.21.1001" ), "1.21.1001" )
34- self .assertEqual (self .version_comparator .extract_version_nums ("Microsoft.CPlat.Core.LinuxPatchExtension-1.6.100" ), "1.6.100" )
35- self .assertEqual (self .version_comparator .extract_version_nums ("Microsoft.CPlat.Core.LinuxPatchExtension-1.6.99" ), "1.6.99" )
36- self .assertEqual (self .version_comparator .extract_version_nums ("Microsoft.CPlat.Core.LinuxPatchExtension-1.6." ), "" )
37- self .assertEqual (self .version_comparator .extract_version_nums ("Microsoft.CPlat.Core.LinuxPatchExtension-a.b.c" ), "" )
27+ def test_extract_version_from_os_version_nums (self ):
28+ """ Test extract version logic on Ubuntuproclient version """
29+ self .assertEqual (self .version_comparator .extract_version_from_os_version_nums ("34" ), "34" )
30+ self .assertEqual (self .version_comparator .extract_version_from_os_version_nums ("34~18" ), "34" )
31+ self .assertEqual (self .version_comparator .extract_version_from_os_version_nums ("34.~18.04" ), "34" )
32+ self .assertEqual (self .version_comparator .extract_version_from_os_version_nums ("34.a+18.04.1" ), "34" )
33+ self .assertEqual (self .version_comparator .extract_version_from_os_version_nums ("34abc-18.04" ), "34" )
34+ self .assertEqual (self .version_comparator .extract_version_from_os_version_nums ("abc34~18.04" ), "34" )
35+ self .assertEqual (self .version_comparator .extract_version_from_os_version_nums ("abc34~18.04.123" ), "34" )
36+ self .assertEqual (self .version_comparator .extract_version_from_os_version_nums ("34~25.1.2-18.04.1" ), "34" )
37+
38+ self .assertEqual (self .version_comparator .extract_version_from_os_version_nums ("34.1~18.04.1" ), "34.1" )
39+ self .assertEqual (self .version_comparator .extract_version_from_os_version_nums ("34.13.4" ), "34.13.4" )
40+ self .assertEqual (self .version_comparator .extract_version_from_os_version_nums ("34.13.4~18.04.1" ), "34.13.4" )
41+ self .assertEqual (self .version_comparator .extract_version_from_os_version_nums ("34.13.4-ab+18.04.1" ), "34.13.4" )
42+ self .assertEqual (self .version_comparator .extract_version_from_os_version_nums ("34.13.4abc-18.04.1" ), "34.13.4" )
43+ self .assertEqual (self .version_comparator .extract_version_from_os_version_nums ("abc.34.13.4!@abc" ), "34.13.4" )
44+
45+ def test_linux_os_version_comparison (self ):
46+ """ Test compare versions logic Ubuntuproclient version with existing vm version """
47+ test_extracted_good_version = self .version_comparator .extract_version_from_os_version_nums ("34.13.4~18.04.1" ) # return 34
48+
49+ self .assertEqual (self .version_comparator .compare_versions (test_extracted_good_version , "34.13.4" ), 0 ) # equal 34.13.4 == 34.13.4
50+ self .assertEqual (self .version_comparator .compare_versions (test_extracted_good_version , "34.13.3" ), 1 ) # greater 34.13.4 > 34.13.3
51+ self .assertEqual (self .version_comparator .compare_versions (test_extracted_good_version , "34.13.5" ), - 1 ) # less 34.13.4 < 34.13.5
52+
53+ test_extracted_bad_version = self .version_comparator .extract_version_from_os_version_nums ("abc~18.04.1" ) # return ""
54+ self .assertEqual (self .version_comparator .compare_versions (test_extracted_bad_version , "34.13.4" ), - 1 ) # less "" < 34.13.4
3855
39- expected_extracted_version = "27.13.4"
40- test_extracted_v1 = self .version_comparator .extract_version_nums ("27.13.4~18.04.1" )
41- test_extracted_v2 = self .version_comparator .extract_version_nums ("27.13.4+18.04.1" )
42- test_extracted_v3 = self .version_comparator .extract_version_nums ("27.13.4-18.04.1" )
43-
44- self .assertEqual (test_extracted_v1 , expected_extracted_version )
45- self .assertEqual (test_extracted_v2 , expected_extracted_version )
46- self .assertEqual (test_extracted_v3 , expected_extracted_version )
47-
48- # Test compare versions logic
49- self .assertEqual (self .version_comparator .compare_version_nums (test_extracted_v1 , "27.13.4" ), 0 ) # equal
50- self .assertEqual (self .version_comparator .compare_version_nums (test_extracted_v2 , "27.13.3" ), 1 ) # greater
51- self .assertEqual (self .version_comparator .compare_version_nums (test_extracted_v3 , "27.13.5" ), - 1 ) # less
52-
53- # Test sort versions logic
54- unsorted_path_versions = [
55- "Microsoft.CPlat.Core.LinuxPatchExtension-1.2.25-abc+def.123" ,
56- "Microsoft.CPlat.Core.LinuxPatchExtension-1.21.1001" ,
57- "Microsoft.CPlat.Core.LinuxPatchExtension-1.6.100" ,
58- "Microsoft.CPlat.Core.LinuxPatchExtension-1.6.99" ,
59- "Microsoft.CPlat.Core.LinuxPatchExtension-1.21.100" ,
60- "Microsoft.CPlat.Core.LinuxPatchExtension-1.2.25-abc" ,
61- ]
62-
63- expected_sorted_path_versions = [
64- "Microsoft.CPlat.Core.LinuxPatchExtension-1.21.1001" ,
65- "Microsoft.CPlat.Core.LinuxPatchExtension-1.21.100" ,
66- "Microsoft.CPlat.Core.LinuxPatchExtension-1.6.100" ,
67- "Microsoft.CPlat.Core.LinuxPatchExtension-1.6.99" ,
68- "Microsoft.CPlat.Core.LinuxPatchExtension-1.2.25-abc+def.123" ,
69- "Microsoft.CPlat.Core.LinuxPatchExtension-1.2.25-abc"
70- ]
71-
72- # valid versions
73- self .assertEqual (self .version_comparator .sort_versions_desc_order (unsorted_path_versions ), expected_sorted_path_versions )
7456
7557if __name__ == '__main__' :
7658 unittest .main ()
77-
0 commit comments