1 ##############################################################################
2 # Copyright (c) 2016 Daniel Farrell. All rights reserved.
4 # This program and the accompanying materials are made available under the
5 # terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 # and is available at http://www.eclipse.org/legal/epl-v10.html
7 ##############################################################################
9 """Tests for package build logic helper library."""
16 class TestExtractVersion(unittest.TestCase):
18 """Test logic to extract ODL versions from artifact URLs."""
20 nexus_url = "https://nexus.opendaylight.org/content/repositories"
22 def test_boron_sr4_release_url(self):
23 """Test URL of the ODL Boron SR4 release."""
25 url = "%s/opendaylight.release/org/opendaylight/integration/distribution-karaf/0.5.4-Boron-SR4/distribution-karaf-0.5.4-Boron-SR4.tar.gz" % self.nexus_url
26 version = lib.extract_version(url)
27 self.assertEqual(version["version_major"], "5")
28 self.assertEqual(version["version_minor"], "4")
29 self.assertEqual(version["version_patch"], "0")
30 self.assertEqual(version["pkg_version"], "1")
31 self.assertEqual(version["codename"], "-Boron-SR4")
33 def test_boron_sr4_release_zip_url(self):
34 """Test URL of the ODL Boron SR4 release zip archive."""
36 url = "%s/opendaylight.release/org/opendaylight/integration/distribution-karaf/0.5.4-Boron-SR4/distribution-karaf-0.5.4-Boron-SR4.zip" % self.nexus_url
37 version = lib.extract_version(url)
38 self.assertEqual(version["version_major"], "5")
39 self.assertEqual(version["version_minor"], "4")
40 self.assertEqual(version["version_patch"], "0")
41 self.assertEqual(version["pkg_version"], "1")
42 self.assertEqual(version["codename"], "-Boron-SR4")
44 def test_carbon_release_url(self):
45 """Test URL of the ODL Carbon release."""
47 url = "%s/opendaylight.release/org/opendaylight/integration/distribution-karaf/0.6.0-Carbon/distribution-karaf-0.6.0-Carbon.tar.gz" % self.nexus_url
48 version = lib.extract_version(url)
49 self.assertEqual(version["version_major"], "6")
50 self.assertEqual(version["version_minor"], "0")
51 self.assertEqual(version["version_patch"], "0")
52 self.assertEqual(version["pkg_version"], "1")
53 self.assertEqual(version["codename"], "-Carbon")
55 def test_carbon_release_zip_url(self):
56 """Test URL of the ODL Carbon release zip archive."""
58 url = "%s/opendaylight.release/org/opendaylight/integration/distribution-karaf/0.6.0-Carbon/distribution-karaf-0.6.0-Carbon.zip" % self.nexus_url
59 version = lib.extract_version(url)
60 self.assertEqual(version["version_major"], "6")
61 self.assertEqual(version["version_minor"], "0")
62 self.assertEqual(version["version_patch"], "0")
63 self.assertEqual(version["pkg_version"], "1")
64 self.assertEqual(version["codename"], "-Carbon")
66 def test_carbon_sr1_release_url(self):
67 """Test URL of the ODL Carbon SR1 release."""
69 url = "%s/opendaylight.release/org/opendaylight/integration/distribution-karaf/0.6.1-Carbon/distribution-karaf-0.6.1-Carbon.tar.gz" % self.nexus_url
70 version = lib.extract_version(url)
71 self.assertEqual(version["version_major"], "6")
72 self.assertEqual(version["version_minor"], "1")
73 self.assertEqual(version["version_patch"], "0")
74 self.assertEqual(version["pkg_version"], "1")
75 self.assertEqual(version["codename"], "-Carbon")
77 def test_carbon_sr1_release_zip_url(self):
78 """Test URL of the ODL Carbon SR1 release zip archive."""
80 url = "%s/opendaylight.release/org/opendaylight/integration/distribution-karaf/0.6.1-Carbon/distribution-karaf-0.6.1-Carbon.zip" % self.nexus_url
81 version = lib.extract_version(url)
82 self.assertEqual(version["version_major"], "6")
83 self.assertEqual(version["version_minor"], "1")
84 self.assertEqual(version["version_patch"], "0")
85 self.assertEqual(version["pkg_version"], "1")
86 self.assertEqual(version["codename"], "-Carbon")
88 def test_boron_autorelease_url(self):
89 """Test URL of an ODL Boron autorelease build."""
91 url = "%s/autorelease-1928/org/opendaylight/integration/distribution-karaf/0.5.5-Boron-SR5/distribution-karaf-0.5.5-Boron-SR5.tar.gz" % self.nexus_url
92 version = lib.extract_version(url)
93 self.assertEqual(version["version_major"], "5")
94 self.assertEqual(version["version_minor"], "5")
95 self.assertEqual(version["version_patch"], "0")
96 self.assertEqual(version["pkg_version"], "0.1.20170813rel1928")
97 self.assertEqual(version["codename"], "-Boron-SR5")
99 def test_boron_autorelease_zip_url(self):
100 """Test URL of an ODL Boron autorelease build zip archive."""
101 # noqa ShellCheckBear
102 url = "%s/autorelease-1928/org/opendaylight/integration/distribution-karaf/0.5.5-Boron-SR5/distribution-karaf-0.5.5-Boron-SR5.zip" % self.nexus_url
103 version = lib.extract_version(url)
104 self.assertEqual(version["version_major"], "5")
105 self.assertEqual(version["version_minor"], "5")
106 self.assertEqual(version["version_patch"], "0")
107 self.assertEqual(version["pkg_version"], "0.1.20170813rel1928")
108 self.assertEqual(version["codename"], "-Boron-SR5")
110 def test_carbon_autorelease_url(self):
111 """Test URL of an ODL Carbon autorelease build."""
112 # noqa ShellCheckBear
113 url = "%s/autorelease-1940/org/opendaylight/integration/distribution-karaf/0.6.2-Carbon/distribution-karaf-0.6.2-Carbon.tar.gz" % self.nexus_url
114 version = lib.extract_version(url)
115 self.assertEqual(version["version_major"], "6")
116 self.assertEqual(version["version_minor"], "2")
117 self.assertEqual(version["version_patch"], "0")
118 self.assertEqual(version["pkg_version"], "0.1.20170823rel1940")
119 self.assertEqual(version["codename"], "-Carbon")
121 def test_carbon_autorelease_zip_url(self):
122 """Test URL of an ODL Carbon autorelease build zip archive."""
123 # noqa ShellCheckBear
124 url = "%s/autorelease-1940/org/opendaylight/integration/distribution-karaf/0.6.2-Carbon/distribution-karaf-0.6.2-Carbon.tar.gz" % self.nexus_url
125 version = lib.extract_version(url)
126 self.assertEqual(version["version_major"], "6")
127 self.assertEqual(version["version_minor"], "2")
128 self.assertEqual(version["version_patch"], "0")
129 self.assertEqual(version["pkg_version"], "0.1.20170823rel1940")
130 self.assertEqual(version["codename"], "-Carbon")
132 def test_nitrogen_autorelease_url(self):
133 """Test URL of an ODL Nitrogen autorelease build."""
134 # noqa ShellCheckBear
135 url = "%s/autorelease-1939/org/opendaylight/integration/karaf/0.7.0/karaf-0.7.0.tar.gz" % self.nexus_url
136 version = lib.extract_version(url)
137 self.assertEqual(version["version_major"], "7")
138 self.assertEqual(version["version_minor"], "0")
139 self.assertEqual(version["version_patch"], "0")
140 self.assertEqual(version["pkg_version"], "0.1.20170823rel1939")
141 self.assertEqual(version["codename"], "")
143 def test_nitrogen_autorelease_zip_url(self):
144 """Test URL of an ODL Nitrogen autorelease build zip archive."""
145 # noqa ShellCheckBear
146 url = "%s/autorelease-1939/org/opendaylight/integration/karaf/0.7.0/karaf-0.7.0.tar.gz" % self.nexus_url
147 version = lib.extract_version(url)
148 self.assertEqual(version["version_major"], "7")
149 self.assertEqual(version["version_minor"], "0")
150 self.assertEqual(version["version_patch"], "0")
151 self.assertEqual(version["pkg_version"], "0.1.20170823rel1939")
152 self.assertEqual(version["codename"], "")
154 def test_boron_snapshot_url(self):
155 """Test URL of an ODL Boron snapshot build."""
156 # noqa ShellCheckBear
157 url = "%s/opendaylight.snapshot/org/opendaylight/integration/distribution-karaf/0.5.5-SNAPSHOT/distribution-karaf-0.5.5-20170813.233539-357.tar.gz" % self.nexus_url
158 version = lib.extract_version(url)
159 self.assertEqual(version["version_major"], "5")
160 self.assertEqual(version["version_minor"], "5")
161 self.assertEqual(version["version_patch"], "0")
162 self.assertEqual(version["pkg_version"], "0.1.20170813snap357")
163 self.assertEqual(version["codename"], "-SNAPSHOT")
165 def test_boron_snapshot_zip_url(self):
166 """Test URL of an ODL Boron snapshot build zip archive."""
167 # noqa ShellCheckBear
168 url = "%s/opendaylight.snapshot/org/opendaylight/integration/distribution-karaf/0.5.5-SNAPSHOT/distribution-karaf-0.5.5-20170813.233539-357.tar.gz" % self.nexus_url
169 version = lib.extract_version(url)
170 self.assertEqual(version["version_major"], "5")
171 self.assertEqual(version["version_minor"], "5")
172 self.assertEqual(version["version_patch"], "0")
173 self.assertEqual(version["pkg_version"], "0.1.20170813snap357")
174 self.assertEqual(version["codename"], "-SNAPSHOT")
176 def test_carbon_snapshot_url(self):
177 """Test URL of an ODL Carbon snapshot build."""
178 # noqa ShellCheckBear
179 url = "%s/opendaylight.snapshot/org/opendaylight/integration/distribution-karaf/0.6.2-SNAPSHOT/distribution-karaf-0.6.2-20170821.001151-442.tar.gz" % self.nexus_url
180 version = lib.extract_version(url)
181 self.assertEqual(version["version_major"], "6")
182 self.assertEqual(version["version_minor"], "2")
183 self.assertEqual(version["version_patch"], "0")
184 self.assertEqual(version["pkg_version"], "0.1.20170821snap442")
185 self.assertEqual(version["codename"], "-SNAPSHOT")
187 def test_carbon_snapshot_zip_url(self):
188 """Test URL of an ODL Carbon snapshot build zip archive."""
189 # noqa ShellCheckBear
190 url = "%s/opendaylight.snapshot/org/opendaylight/integration/distribution-karaf/0.6.2-SNAPSHOT/distribution-karaf-0.6.2-20170821.001151-442.tar.gz" % self.nexus_url
191 version = lib.extract_version(url)
192 self.assertEqual(version["version_major"], "6")
193 self.assertEqual(version["version_minor"], "2")
194 self.assertEqual(version["version_patch"], "0")
195 self.assertEqual(version["pkg_version"], "0.1.20170821snap442")
196 self.assertEqual(version["codename"], "-SNAPSHOT")
198 def test_nitrogen_snapshot_url(self):
199 """Test URL of an ODL Nitrogen snapshot build."""
200 # noqa ShellCheckBear
201 url = "%s/opendaylight.snapshot/org/opendaylight/integration/karaf/0.7.0-SNAPSHOT/karaf-0.7.0-20170815.162950-1727.tar.gz" % self.nexus_url
202 version = lib.extract_version(url)
203 self.assertEqual(version["version_major"], "7")
204 self.assertEqual(version["version_minor"], "0")
205 self.assertEqual(version["version_patch"], "0")
206 self.assertEqual(version["pkg_version"], "0.1.20170815snap1727")
207 self.assertEqual(version["codename"], "-SNAPSHOT")
209 def test_nitrogen_snapshot_zip_url(self):
210 """Test URL of an ODL Nitrogen snapshot build zip archive."""
211 # noqa ShellCheckBear
212 url = "%s/opendaylight.snapshot/org/opendaylight/integration/karaf/0.7.0-SNAPSHOT/karaf-0.7.0-20170815.162950-1727.tar.gz" % self.nexus_url
213 version = lib.extract_version(url)
214 self.assertEqual(version["version_major"], "7")
215 self.assertEqual(version["version_minor"], "0")
216 self.assertEqual(version["version_patch"], "0")
217 self.assertEqual(version["pkg_version"], "0.1.20170815snap1727")
218 self.assertEqual(version["codename"], "-SNAPSHOT")
220 def test_oxygen_snapshot_url(self):
221 """Test URL of an ODL Oxygen snapshot build."""
222 # noqa ShellCheckBear
223 url = "%s/opendaylight.snapshot/org/opendaylight/integration/karaf/0.8.0-SNAPSHOT/karaf-0.8.0-20170815.163312-2.tar.gz" % self.nexus_url
224 version = lib.extract_version(url)
225 self.assertEqual(version["version_major"], "8")
226 self.assertEqual(version["version_minor"], "0")
227 self.assertEqual(version["version_patch"], "0")
228 self.assertEqual(version["pkg_version"], "0.1.20170815snap2")
229 self.assertEqual(version["codename"], "-SNAPSHOT")
231 def test_oxygen_snapshot_zip_url(self):
232 """Test URL of an ODL Oxygen snapshot build zip archive."""
233 # noqa ShellCheckBear
234 url = "%s/opendaylight.snapshot/org/opendaylight/integration/karaf/0.8.0-SNAPSHOT/karaf-0.8.0-20170815.163312-2.tar.gz" % self.nexus_url
235 version = lib.extract_version(url)
236 self.assertEqual(version["version_major"], "8")
237 self.assertEqual(version["version_minor"], "0")
238 self.assertEqual(version["version_patch"], "0")
239 self.assertEqual(version["pkg_version"], "0.1.20170815snap2")
240 self.assertEqual(version["codename"], "-SNAPSHOT")
242 def test_carbon_multipatch_zip_url(self):
243 """Test URL of an ODL Carbon multipatch-test build zip archive."""
244 # noqa ShellCheckBear
245 url = "%s/opendaylight.snapshot/org/opendaylight/integration/integration/distribution/distribution-karaf/0.6.2-SNAPSHOT/distribution-karaf-0.6.2-20170822.142235-45.zip" % self.nexus_url
246 version = lib.extract_version(url)
247 self.assertEqual(version["version_major"], "6")
248 self.assertEqual(version["version_minor"], "2")
249 self.assertEqual(version["version_patch"], "0")
250 self.assertEqual(version["pkg_version"], "0.1.20170822snap45")
251 self.assertEqual(version["codename"], "-SNAPSHOT")
253 def test_nitrogen_multipatch_zip_url(self):
254 """Test URL of an ODL Nitrogen multipatch-test build zip archive."""
255 # noqa ShellCheckBear
256 url = "%s/opendaylight.snapshot/org/opendaylight/integration/integration/distribution/karaf/0.7.0-SNAPSHOT/karaf-0.7.0-20170822.075207-274.zip" % self.nexus_url
257 version = lib.extract_version(url)
258 self.assertEqual(version["version_major"], "7")
259 self.assertEqual(version["version_minor"], "0")
260 self.assertEqual(version["version_patch"], "0")
261 self.assertEqual(version["pkg_version"], "0.1.20170822snap274")
262 self.assertEqual(version["codename"], "-SNAPSHOT")
264 def test_oxygen_multipatch_zip_url(self):
265 """Test URL of an ODL Oxygen multipatch-test build zip archive."""
266 # noqa ShellCheckBear
267 url = "%s/opendaylight.snapshot/org/opendaylight/integration/integration/distribution/karaf/0.8.0-SNAPSHOT/karaf-0.8.0-20170822.072253-6.zip" % self.nexus_url
268 version = lib.extract_version(url)
269 self.assertEqual(version["version_major"], "8")
270 self.assertEqual(version["version_minor"], "0")
271 self.assertEqual(version["version_patch"], "0")
272 self.assertEqual(version["pkg_version"], "0.1.20170822snap6")
273 self.assertEqual(version["codename"], "-SNAPSHOT")
276 class TestGetSnapURL(unittest.TestCase):
278 """Test logic get URL to latest snapshot build of given major version."""
280 url_base = "https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration"
282 def validate_snap_url(self, snap_url):
283 """Helper for validating snapshot URLs are sane."""
284 self.assertIn(self.url_base, snap_url)
285 self.assertIn("tar.gz", snap_url)
286 self.assertNotIn("release", snap_url)
287 self.assertNotIn("public", snap_url)
289 def test_boron(self):
290 """Test Boron major version gives sane snapshot URL."""
291 self.validate_snap_url(lib.get_snap_url("5"))
293 def test_carbon(self):
294 """Test Carbon major version gives sane snapshot URL."""
295 self.validate_snap_url(lib.get_snap_url("6"))
297 def test_nitrogen(self):
298 """Test Nitrogen major version gives sane snapshot URL."""
299 self.validate_snap_url(lib.get_snap_url("7"))
301 def test_oxygen(self):
302 """Test Oxygen major version gives sane snapshot URL."""
303 self.validate_snap_url(lib.get_snap_url("8"))
306 class TestGetDistroNamePrefix(unittest.TestCase):
308 """Test logic to get Karaf 3/4 distro name prefix per ODL major version."""
310 k3_distro_prefix = "distribution-karaf"
311 k4_distro_prefix = "karaf"
313 def test_boron(self):
314 """Test Boron major version gives Karaf 3 prefix."""
315 distro_prefix = lib.get_distro_name_prefix("5")
316 self.assertEqual(distro_prefix, self.k3_distro_prefix)
318 def test_carbon(self):
319 """Test Carbon major version gives Karaf 3 prefix."""
320 distro_prefix = lib.get_distro_name_prefix("6")
321 self.assertEqual(distro_prefix, self.k3_distro_prefix)
323 def test_nitrogen(self):
324 """Test Nitrogen major version gives Karaf 4 prefix."""
325 distro_prefix = lib.get_distro_name_prefix("7")
326 self.assertEqual(distro_prefix, self.k4_distro_prefix)
328 def test_oxygen(self):
329 """Test Oxygen major version gives Karaf 4 prefix."""
330 distro_prefix = lib.get_distro_name_prefix("8")
331 self.assertEqual(distro_prefix, self.k4_distro_prefix)
333 def test_boron_int(self):
334 """Test Boron major version as int gives Karaf 3 prefix."""
335 distro_prefix = lib.get_distro_name_prefix(5)
336 self.assertEqual(distro_prefix, self.k3_distro_prefix)
338 def test_carbon_int(self):
339 """Test Carbon major version as int gives Karaf 3 prefix."""
340 distro_prefix = lib.get_distro_name_prefix(6)
341 self.assertEqual(distro_prefix, self.k3_distro_prefix)
343 def test_nitrogen_int(self):
344 """Test Nitrogen major version as int gives Karaf 4 prefix."""
345 distro_prefix = lib.get_distro_name_prefix(7)
346 self.assertEqual(distro_prefix, self.k4_distro_prefix)
348 def test_oxygen_int(self):
349 """Test Oxygen major version as int gives Karaf 4 prefix."""
350 distro_prefix = lib.get_distro_name_prefix(8)
351 self.assertEqual(distro_prefix, self.k4_distro_prefix)