Add Nitrogen release to pkg unit tests
[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_carbon_release_url(self):
23         """Test URL of the ODL Carbon release."""
24         # noqa ShellCheckBear
25         url = "%s/opendaylight.release/org/opendaylight/integration/distribution-karaf/0.6.0-Carbon/distribution-karaf-0.6.0-Carbon.tar.gz" % self.nexus_url
26         version = lib.extract_version(url)
27         self.assertEqual(version["version_major"], "6")
28         self.assertEqual(version["version_minor"], "0")
29         self.assertEqual(version["version_patch"], "0")
30         self.assertEqual(version["pkg_version"], "1")
31         self.assertEqual(version["codename"], "-Carbon")
32
33     def test_carbon_release_zip_url(self):
34         """Test URL of the ODL Carbon release zip archive."""
35         # noqa ShellCheckBear
36         url = "%s/opendaylight.release/org/opendaylight/integration/distribution-karaf/0.6.0-Carbon/distribution-karaf-0.6.0-Carbon.zip" % self.nexus_url
37         version = lib.extract_version(url)
38         self.assertEqual(version["version_major"], "6")
39         self.assertEqual(version["version_minor"], "0")
40         self.assertEqual(version["version_patch"], "0")
41         self.assertEqual(version["pkg_version"], "1")
42         self.assertEqual(version["codename"], "-Carbon")
43
44     def test_carbon_sr1_release_url(self):
45         """Test URL of the ODL Carbon SR1 release."""
46         # noqa ShellCheckBear
47         url = "%s/opendaylight.release/org/opendaylight/integration/distribution-karaf/0.6.1-Carbon/distribution-karaf-0.6.1-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"], "1")
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_sr1_release_zip_url(self):
56         """Test URL of the ODL Carbon SR1 release zip archive."""
57         # noqa ShellCheckBear
58         url = "%s/opendaylight.release/org/opendaylight/integration/distribution-karaf/0.6.1-Carbon/distribution-karaf-0.6.1-Carbon.zip" % self.nexus_url
59         version = lib.extract_version(url)
60         self.assertEqual(version["version_major"], "6")
61         self.assertEqual(version["version_minor"], "1")
62         self.assertEqual(version["version_patch"], "0")
63         self.assertEqual(version["pkg_version"], "1")
64         self.assertEqual(version["codename"], "-Carbon")
65
66     def test_nitrogen_release_url(self):
67         """Test URL of the ODL Nitrogen release."""
68         # noqa ShellCheckBear
69         url = "%s/opendaylight.release/org/opendaylight/integration/karaf/0.7.0/karaf-0.7.0.tar.gz" % self.nexus_url
70         version = lib.extract_version(url)
71         self.assertEqual(version["version_major"], "7")
72         self.assertEqual(version["version_minor"], "0")
73         self.assertEqual(version["version_patch"], "0")
74         self.assertEqual(version["pkg_version"], "1")
75         self.assertEqual(version["codename"], "")
76
77     def test_nitrogen_release_zip_url(self):
78         """Test URL of the ODL Nitrogen release zip archive."""
79         # noqa ShellCheckBear
80         url = "%s/opendaylight.release/org/opendaylight/integration/karaf/0.7.0/karaf-0.7.0.zip" % self.nexus_url
81         version = lib.extract_version(url)
82         self.assertEqual(version["version_major"], "7")
83         self.assertEqual(version["version_minor"], "0")
84         self.assertEqual(version["version_patch"], "0")
85         self.assertEqual(version["pkg_version"], "1")
86         self.assertEqual(version["codename"], "")
87
88     def test_carbon_autorelease_url(self):
89         """Test URL of an ODL Carbon autorelease build."""
90         # noqa ShellCheckBear
91         url = "%s/autorelease-1996/org/opendaylight/integration/distribution-karaf/0.6.2-Carbon/distribution-karaf-0.6.2-Carbon.tar.gz" % self.nexus_url
92         version = lib.extract_version(url)
93         self.assertEqual(version["version_major"], "6")
94         self.assertEqual(version["version_minor"], "2")
95         self.assertEqual(version["version_patch"], "0")
96         self.assertEqual(version["pkg_version"], "0.1.20171002rel1996")
97         self.assertEqual(version["codename"], "-Carbon")
98
99     def test_carbon_autorelease_zip_url(self):
100         """Test URL of an ODL Carbon autorelease build zip archive."""
101         # noqa ShellCheckBear
102         url = "%s/autorelease-1996/org/opendaylight/integration/distribution-karaf/0.6.2-Carbon/distribution-karaf-0.6.2-Carbon.zip" % self.nexus_url
103         version = lib.extract_version(url)
104         self.assertEqual(version["version_major"], "6")
105         self.assertEqual(version["version_minor"], "2")
106         self.assertEqual(version["version_patch"], "0")
107         self.assertEqual(version["pkg_version"], "0.1.20171002rel1996")
108         self.assertEqual(version["codename"], "-Carbon")
109
110     def test_nitrogen_autorelease_url(self):
111         """Test URL of an ODL Nitrogen autorelease build."""
112         # noqa ShellCheckBear
113         url = "%s/autorelease-1991/org/opendaylight/integration/karaf/0.7.0/karaf-0.7.0.tar.gz" % self.nexus_url
114         version = lib.extract_version(url)
115         self.assertEqual(version["version_major"], "7")
116         self.assertEqual(version["version_minor"], "0")
117         self.assertEqual(version["version_patch"], "0")
118         self.assertEqual(version["pkg_version"], "0.1.20170927rel1991")
119         self.assertEqual(version["codename"], "")
120
121     def test_nitrogen_autorelease_zip_url(self):
122         """Test URL of an ODL Nitrogen autorelease build zip archive."""
123         # noqa ShellCheckBear
124         url = "%s/autorelease-1991/org/opendaylight/integration/karaf/0.7.0/karaf-0.7.0.zip" % self.nexus_url
125         version = lib.extract_version(url)
126         self.assertEqual(version["version_major"], "7")
127         self.assertEqual(version["version_minor"], "0")
128         self.assertEqual(version["version_patch"], "0")
129         self.assertEqual(version["pkg_version"], "0.1.20170927rel1991")
130         self.assertEqual(version["codename"], "")
131
132     def test_carbon_snapshot_url(self):
133         """Test URL of an ODL Carbon snapshot build."""
134         # noqa ShellCheckBear
135         url = "%s/opendaylight.snapshot/org/opendaylight/integration/distribution-karaf/0.6.2-SNAPSHOT/distribution-karaf-0.6.2-20171003.084929-847.tar.gz" % self.nexus_url
136         version = lib.extract_version(url)
137         self.assertEqual(version["version_major"], "6")
138         self.assertEqual(version["version_minor"], "2")
139         self.assertEqual(version["version_patch"], "0")
140         self.assertEqual(version["pkg_version"], "0.1.20171003snap847")
141         self.assertEqual(version["codename"], "-SNAPSHOT")
142
143     def test_carbon_snapshot_zip_url(self):
144         """Test URL of an ODL Carbon snapshot build zip archive."""
145         # noqa ShellCheckBear
146         url = "%s/opendaylight.snapshot/org/opendaylight/integration/distribution-karaf/0.6.2-SNAPSHOT/distribution-karaf-0.6.2-20171003.084929-847.zip" % self.nexus_url
147         version = lib.extract_version(url)
148         self.assertEqual(version["version_major"], "6")
149         self.assertEqual(version["version_minor"], "2")
150         self.assertEqual(version["version_patch"], "0")
151         self.assertEqual(version["pkg_version"], "0.1.20171003snap847")
152         self.assertEqual(version["codename"], "-SNAPSHOT")
153
154     def test_nitrogen_snapshot_url(self):
155         """Test URL of an ODL Nitrogen snapshot build."""
156         # noqa ShellCheckBear
157         url = "%s/opendaylight.snapshot/org/opendaylight/integration/karaf/0.7.0-SNAPSHOT/karaf-0.7.0-20170927.033128-2013.tar.gz" % self.nexus_url
158         version = lib.extract_version(url)
159         self.assertEqual(version["version_major"], "7")
160         self.assertEqual(version["version_minor"], "0")
161         self.assertEqual(version["version_patch"], "0")
162         self.assertEqual(version["pkg_version"], "0.1.20170927snap2013")
163         self.assertEqual(version["codename"], "-SNAPSHOT")
164
165     def test_nitrogen_snapshot_zip_url(self):
166         """Test URL of an ODL Nitrogen snapshot build zip archive."""
167         # noqa ShellCheckBear
168         url = "%s/opendaylight.snapshot/org/opendaylight/integration/karaf/0.7.0-SNAPSHOT/karaf-0.7.0-20170927.033128-2013.zip" % self.nexus_url
169         version = lib.extract_version(url)
170         self.assertEqual(version["version_major"], "7")
171         self.assertEqual(version["version_minor"], "0")
172         self.assertEqual(version["version_patch"], "0")
173         self.assertEqual(version["pkg_version"], "0.1.20170927snap2013")
174         self.assertEqual(version["codename"], "-SNAPSHOT")
175
176     def test_oxygen_snapshot_url(self):
177         """Test URL of an ODL Oxygen snapshot build."""
178         # noqa ShellCheckBear
179         url = "%s/opendaylight.snapshot/org/opendaylight/integration/karaf/0.8.0-SNAPSHOT/karaf-0.8.0-20170928.142221-597.tar.gz" % self.nexus_url
180         version = lib.extract_version(url)
181         self.assertEqual(version["version_major"], "8")
182         self.assertEqual(version["version_minor"], "0")
183         self.assertEqual(version["version_patch"], "0")
184         self.assertEqual(version["pkg_version"], "0.1.20170928snap597")
185         self.assertEqual(version["codename"], "-SNAPSHOT")
186
187     def test_oxygen_snapshot_zip_url(self):
188         """Test URL of an ODL Oxygen snapshot build zip archive."""
189         # noqa ShellCheckBear
190         url = "%s/opendaylight.snapshot/org/opendaylight/integration/karaf/0.8.0-SNAPSHOT/karaf-0.8.0-20170928.142221-597.zip" % self.nexus_url
191         version = lib.extract_version(url)
192         self.assertEqual(version["version_major"], "8")
193         self.assertEqual(version["version_minor"], "0")
194         self.assertEqual(version["version_patch"], "0")
195         self.assertEqual(version["pkg_version"], "0.1.20170928snap597")
196         self.assertEqual(version["codename"], "-SNAPSHOT")
197
198     def test_carbon_multipatch_zip_url(self):
199         """Test URL of an ODL Carbon multipatch-test build zip archive."""
200         # noqa ShellCheckBear
201         url = "%s/opendaylight.snapshot/org/opendaylight/integration/integration/distribution/distribution-karaf/0.6.2-SNAPSHOT/distribution-karaf-0.6.2-20171002.113256-59.zip" % self.nexus_url
202         version = lib.extract_version(url)
203         self.assertEqual(version["version_major"], "6")
204         self.assertEqual(version["version_minor"], "2")
205         self.assertEqual(version["version_patch"], "0")
206         self.assertEqual(version["pkg_version"], "0.1.20171002snap59")
207         self.assertEqual(version["codename"], "-SNAPSHOT")
208
209     def test_nitrogen_multipatch_zip_url(self):
210         """Test URL of an ODL Nitrogen multipatch-test build zip archive."""
211         # noqa ShellCheckBear
212         url = "%s/opendaylight.snapshot/org/opendaylight/integration/integration/distribution/karaf/0.7.1-SNAPSHOT/karaf-0.7.1-20171003.134117-9.zip" % self.nexus_url
213         version = lib.extract_version(url)
214         self.assertEqual(version["version_major"], "7")
215         self.assertEqual(version["version_minor"], "1")
216         self.assertEqual(version["version_patch"], "0")
217         self.assertEqual(version["pkg_version"], "0.1.20171003snap9")
218         self.assertEqual(version["codename"], "-SNAPSHOT")
219
220     def test_oxygen_multipatch_zip_url(self):
221         """Test URL of an ODL Oxygen multipatch-test build zip archive."""
222         # noqa ShellCheckBear
223         url = "%s/opendaylight.snapshot/org/opendaylight/integration/integration/distribution/karaf/0.8.0-SNAPSHOT/karaf-0.8.0-20171003.122621-24.zip" % 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.20171003snap24")
229         self.assertEqual(version["codename"], "-SNAPSHOT")
230
231
232 class TestGetSnapURL(unittest.TestCase):
233
234     """Test logic get URL to latest snapshot build of given major version."""
235
236     url_base = "https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration"
237
238     def validate_snap_url(self, snap_url):
239         """Helper for validating snapshot URLs are sane."""
240         self.assertIn(self.url_base, snap_url)
241         self.assertIn("tar.gz", snap_url)
242         self.assertNotIn("release", snap_url)
243         self.assertNotIn("public", snap_url)
244
245     def test_carbon(self):
246         """Test Carbon major version gives sane snapshot URL."""
247         self.validate_snap_url(lib.get_snap_url("6"))
248
249     def test_nitrogen(self):
250         """Test Nitrogen major version gives sane snapshot URL."""
251         self.validate_snap_url(lib.get_snap_url("7"))
252
253     def test_oxygen(self):
254         """Test Oxygen major version gives sane snapshot URL."""
255         self.validate_snap_url(lib.get_snap_url("8"))
256
257
258 class TestGetDistroNamePrefix(unittest.TestCase):
259
260     """Test logic to get Karaf 3/4 distro name prefix per ODL major version."""
261
262     k3_distro_prefix = "distribution-karaf"
263     k4_distro_prefix = "karaf"
264
265     def test_carbon(self):
266         """Test Carbon major version gives Karaf 3 prefix."""
267         distro_prefix = lib.get_distro_name_prefix("6")
268         self.assertEqual(distro_prefix, self.k3_distro_prefix)
269
270     def test_nitrogen(self):
271         """Test Nitrogen major version gives Karaf 4 prefix."""
272         distro_prefix = lib.get_distro_name_prefix("7")
273         self.assertEqual(distro_prefix, self.k4_distro_prefix)
274
275     def test_oxygen(self):
276         """Test Oxygen major version gives Karaf 4 prefix."""
277         distro_prefix = lib.get_distro_name_prefix("8")
278         self.assertEqual(distro_prefix, self.k4_distro_prefix)
279
280     def test_carbon_int(self):
281         """Test Carbon major version as int gives Karaf 3 prefix."""
282         distro_prefix = lib.get_distro_name_prefix(6)
283         self.assertEqual(distro_prefix, self.k3_distro_prefix)
284
285     def test_nitrogen_int(self):
286         """Test Nitrogen major version as int gives Karaf 4 prefix."""
287         distro_prefix = lib.get_distro_name_prefix(7)
288         self.assertEqual(distro_prefix, self.k4_distro_prefix)
289
290     def test_oxygen_int(self):
291         """Test Oxygen major version as int gives Karaf 4 prefix."""
292         distro_prefix = lib.get_distro_name_prefix(8)
293         self.assertEqual(distro_prefix, self.k4_distro_prefix)