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_carbon_release_url(self):
23 """Test URL of the ODL Carbon release."""
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")
33 def test_carbon_release_zip_url(self):
34 """Test URL of the ODL Carbon release zip archive."""
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")
44 def test_carbon_sr1_release_url(self):
45 """Test URL of the ODL Carbon SR1 release."""
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")
55 def test_carbon_sr1_release_zip_url(self):
56 """Test URL of the ODL Carbon SR1 release zip archive."""
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")
66 def test_nitrogen_release_url(self):
67 """Test URL of the ODL Nitrogen release."""
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"], "")
77 def test_nitrogen_release_zip_url(self):
78 """Test URL of the ODL Nitrogen release zip archive."""
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"], "")
88 def test_carbon_autorelease_url(self):
89 """Test URL of an ODL Carbon autorelease build."""
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")
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")
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"], "")
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"], "")
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")
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")
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")
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")
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")
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")
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")
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")
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")
232 class TestGetSnapURL(unittest.TestCase):
234 """Test logic get URL to latest snapshot build of given major version."""
236 url_base = "https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration"
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)
245 def test_carbon(self):
246 """Test Carbon major version gives sane snapshot URL."""
247 self.validate_snap_url(lib.get_snap_url("6"))
249 def test_nitrogen(self):
250 """Test Nitrogen major version gives sane snapshot URL."""
251 self.validate_snap_url(lib.get_snap_url("7"))
253 def test_oxygen(self):
254 """Test Oxygen major version gives sane snapshot URL."""
255 self.validate_snap_url(lib.get_snap_url("8"))
258 class TestGetDistroNamePrefix(unittest.TestCase):
260 """Test logic to get Karaf 3/4 distro name prefix per ODL major version."""
262 k3_distro_prefix = "distribution-karaf"
263 k4_distro_prefix = "karaf"
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)
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)
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)
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)
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)
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)