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