@@ -24,108 +24,34 @@ class TestVersionComparator(unittest.TestCase):
2424 def setUp (self ):
2525 self .version_comparator = VersionComparator ()
2626
27- def test_linux_extension_version_extract_comparator (self ):
28- """ Test extract version logic on Extension package """
29- self .assertEqual (self .version_comparator .extract_lpe_path_version_num ("/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-1.2.25" ), "1.2.25" )
30- self .assertEqual (self .version_comparator .extract_lpe_path_version_num ("/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-1.2.250" ), "1.2.250" )
31- self .assertEqual (self .version_comparator .extract_lpe_path_version_num ("/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-1.21.2501" ),
32- "1.21.2501" )
33- self .assertEqual (self .version_comparator .extract_lpe_path_version_num ("/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-1.2.25." ), "1.2.25" )
34- self .assertEqual (self .version_comparator .extract_lpe_path_version_num ("/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-1.2.25.." ), "1.2.25" )
35- self .assertEqual (self .version_comparator .extract_lpe_path_version_num ("/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-1.2.25abc" ), "1.2.25" )
36- self .assertEqual (self .version_comparator .extract_lpe_path_version_num ("/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-1.2.25.abc" ), "1.2.25" )
37- self .assertEqual (self .version_comparator .extract_lpe_path_version_num ("/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-1.2.25+abc.123" ),
38- "1.2.25" )
39- self .assertEqual (self .version_comparator .extract_lpe_path_version_num ("/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-1.2.25-abc+def.123" ),
40- "1.2.25" )
41- self .assertEqual (self .version_comparator .extract_lpe_path_version_num ("/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-a.b.c" ), "" )
42-
43- def test_linux_lpe_version_comparison (self ):
44- """ Test compare versions logic lpe version with existing vm version """
45- test_extracted_good_version = self .version_comparator .extract_os_version_nums (
46- "/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-1.2.25" ) # return 1.2.25
47-
48- self .assertEqual (self .version_comparator .compare_version_nums (test_extracted_good_version , "1.2.25" ), 0 ) # equal 1.2.25 == 1.2.25
49- self .assertEqual (self .version_comparator .compare_version_nums (test_extracted_good_version , "1.2.24" ), 1 ) # greater 1.2.25 > 1.2.24
50- self .assertEqual (self .version_comparator .compare_version_nums (test_extracted_good_version , "1.19.25" ), - 1 ) # less 1.2.25 < 1.19.25, 19 > 2
51-
52- test_extracted_bad_version = self .version_comparator .extract_os_version_nums (
53- "/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-a.b.c" ) # return ""
54- self .assertEqual (self .version_comparator .compare_version_nums (test_extracted_bad_version , "1.2.25" ), - 1 ) # less "" != 1.2.25
55-
56- def test_linux_extension_sort_comparator (self ):
57- """ Test sorting comparator on linux patch extension """
58- unsorted_lpe_versions = [
59- "/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-1.2.25-abc+def.123" ,
60- "/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-1.21.1001" ,
61- "/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-1.6.100" ,
62- "/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-1.6.99" ,
63- "/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-1.21.100" ,
64- "/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-1.2.25-abc" ,
65- "/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-1.6.9" ,
66- ]
67-
68- expected_sorted_lpe_versions = [
69- "/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-1.21.1001" ,
70- "/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-1.21.100" ,
71- "/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-1.6.100" ,
72- "/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-1.6.99" ,
73- "/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-1.6.9" ,
74- "/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-1.2.25-abc+def.123" ,
75- "/var/lib/waagent/Microsoft.CPlat.Core.LinuxPatchExtension-1.2.25-abc"
76- ]
77-
78- # validate sorted lpe versions
79- self .assertEqual (self .version_comparator .sort_versions_desc_order (unsorted_lpe_versions ), expected_sorted_lpe_versions )
80-
81- def test_linux_os_version_extract_comparator (self ):
27+ def test_extract_version_from_os_version_nums (self ):
8228 """ Test extract version logic on Ubuntuproclient version """
83- self .assertEqual (self .version_comparator .extract_os_version_nums ("34" ), "34" )
84- self .assertEqual (self .version_comparator .extract_os_version_nums ("34~18" ), "34" )
85- self .assertEqual (self .version_comparator .extract_os_version_nums ("34.~18.04" ), "34" )
86- self .assertEqual (self .version_comparator .extract_os_version_nums ("34.a+18.04.1" ), "34" )
87- self .assertEqual (self .version_comparator .extract_os_version_nums ("34abc-18.04" ), "34" )
88- self .assertEqual (self .version_comparator .extract_os_version_nums ("abc34~18.04" ), "34" )
89- self .assertEqual (self .version_comparator .extract_os_version_nums ("abc34~18.04.123" ), "34" )
90- self .assertEqual (self .version_comparator .extract_os_version_nums ("34~25.1.2-18.04.1" ), "34" )
91-
92- self .assertEqual (self .version_comparator .extract_os_version_nums ("34.1~18.04.1" ), "34.1" )
93- self .assertEqual (self .version_comparator .extract_os_version_nums ("34.13.4" ), "34.13.4" )
94- self .assertEqual (self .version_comparator .extract_os_version_nums ("34.13.4~18.04.1" ), "34.13.4" )
95- self .assertEqual (self .version_comparator .extract_os_version_nums ("34.13.4-ab+18.04.1" ), "34.13.4" )
96- self .assertEqual (self .version_comparator .extract_os_version_nums ("34.13.4abc-18.04.1" ), "34.13.4" )
97- self .assertEqual (self .version_comparator .extract_os_version_nums ("abc.34.13.4!@abc" ), "34.13.4" )
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" )
9844
9945 def test_linux_os_version_comparison (self ):
10046 """ Test compare versions logic Ubuntuproclient version with existing vm version """
101- test_extracted_good_version = self .version_comparator .extract_os_version_nums ("34.13.4~18.04.1" ) # return 34
102-
103- self .assertEqual (self .version_comparator .compare_version_nums (test_extracted_good_version , "34.13.4" ), 0 ) # equal 34.13.4 == 34.13.4
104- self .assertEqual (self .version_comparator .compare_version_nums (test_extracted_good_version , "34.13.3" ), 1 ) # greater 34.13.4 > 34.13.3
105- self .assertEqual (self .version_comparator .compare_version_nums (test_extracted_good_version , "34.13.5" ), - 1 ) # less 34.13.4 < 34.13.5
106-
107- test_extracted_bad_version = self .version_comparator .extract_os_version_nums ("abc~18.04.1" ) # return ""
108- self .assertEqual (self .version_comparator .compare_version_nums (test_extracted_bad_version , "34.13.4" ), - 1 ) # less "" < 34.13.4
109-
110- def test_os_version_sort_comparator (self ):
111- """ Test sorting comparator on linux os version """
112- unsorted_os_versions = [
113- "32.101.~18.01" ,
114- "32.101.15~18" ,
115- "abc34~18.04" ,
116- "32~18.04.01" ,
117- "32.1~18.04.01"
118- ]
47+ test_extracted_good_version = self .version_comparator .extract_version_from_os_version_nums ("34.13.4~18.04.1" ) # return 34
11948
120- expected_sorted_os_versions = [
121- "abc34~18.04" ,
122- "32.101.15~18" ,
123- "32.101.~18.01" ,
124- "32.1~18.04.01" ,
125- "32~18.04.01"
126- ]
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
12752
128- self .assertEqual (self .version_comparator .sort_versions_desc_order (unsorted_os_versions ), expected_sorted_os_versions )
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
12955
13056
13157if __name__ == '__main__' :
0 commit comments