Rename pkg tests to reflect new structure
[integration/packaging.git] / packages / test_lib.py
1 ##############################################################################
2 # Copyright (c) 2016 Daniel Farrell.  All rights reserved.
3 #
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 ##############################################################################
8
9 """Tests for package build logic helper library."""
10
11 import unittest
12
13 import lib
14
15
16 class TestExtractVersion(unittest.TestCase):
17
18     """Test logic to extract ODL versions from artifact URLs."""
19
20     nexus_url = "https://nexus.opendaylight.org/content/repositories"
21
22     def test_boron_sr4_release_url(self):
23         """Test URL of the ODL Boron SR4 release."""
24         # noqa ShellCheckBear
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")
32
33     def test_boron_sr4_release_zip_url(self):
34         """Test URL of the ODL Boron SR4 release zip archive."""
35         # noqa ShellCheckBear
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")
43
44     def test_carbon_release_url(self):
45         """Test URL of the ODL Carbon release."""
46         # noqa ShellCheckBear
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")
54
55     def test_carbon_release_zip_url(self):
56         """Test URL of the ODL Carbon release zip archive."""
57         # noqa ShellCheckBear
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")
65
66     def test_carbon_sr1_release_url(self):
67         """Test URL of the ODL Carbon SR1 release."""
68         # noqa ShellCheckBear
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")
76
77     def test_carbon_sr1_release_zip_url(self):
78         """Test URL of the ODL Carbon SR1 release zip archive."""
79         # noqa ShellCheckBear
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")
87
88     def test_boron_autorelease_url(self):
89         """Test URL of an ODL Boron autorelease build."""
90         # noqa ShellCheckBear
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")
98
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")
109
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")
120
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")
131
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"], "")
142
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"], "")
153
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")
164
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")
175
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")
186
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")
197
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")
208
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")
219
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")
230
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")
241
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")
252
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")
263
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")
274
275
276 class TestGetSnapURL(unittest.TestCase):
277
278     """Test logic get URL to latest snapshot build of given major version."""
279
280     url_base = "https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration"
281
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)
288
289     def test_boron(self):
290         """Test Boron major version gives sane snapshot URL."""
291         self.validate_snap_url(lib.get_snap_url("5"))
292
293     def test_carbon(self):
294         """Test Carbon major version gives sane snapshot URL."""
295         self.validate_snap_url(lib.get_snap_url("6"))
296
297     def test_nitrogen(self):
298         """Test Nitrogen major version gives sane snapshot URL."""
299         self.validate_snap_url(lib.get_snap_url("7"))
300
301     def test_oxygen(self):
302         """Test Oxygen major version gives sane snapshot URL."""
303         self.validate_snap_url(lib.get_snap_url("8"))
304
305
306 class TestGetDistroNamePrefix(unittest.TestCase):
307
308     """Test logic to get Karaf 3/4 distro name prefix per ODL major version."""
309
310     k3_distro_prefix = "distribution-karaf"
311     k4_distro_prefix = "karaf"
312
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)
317
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)
322
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)
327
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)
332
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)
337
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)
342
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)
347
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)