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_carbon_autorelease_url(self):
67 """Test URL of an ODL Carbon autorelease build."""
69 url = "%s/autorelease-1996/org/opendaylight/integration/distribution-karaf/0.6.2-Carbon/distribution-karaf-0.6.2-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"], "2")
73 self.assertEqual(version["version_patch"], "0")
74 self.assertEqual(version["pkg_version"], "0.1.20171002rel1996")
75 self.assertEqual(version["codename"], "-Carbon")
77 def test_carbon_autorelease_zip_url(self):
78 """Test URL of an ODL Carbon autorelease build zip archive."""
80 url = "%s/autorelease-1996/org/opendaylight/integration/distribution-karaf/0.6.2-Carbon/distribution-karaf-0.6.2-Carbon.zip" % self.nexus_url
81 version = lib.extract_version(url)
82 self.assertEqual(version["version_major"], "6")
83 self.assertEqual(version["version_minor"], "2")
84 self.assertEqual(version["version_patch"], "0")
85 self.assertEqual(version["pkg_version"], "0.1.20171002rel1996")
86 self.assertEqual(version["codename"], "-Carbon")
88 def test_nitrogen_autorelease_url(self):
89 """Test URL of an ODL Nitrogen autorelease build."""
91 url = "%s/autorelease-1991/org/opendaylight/integration/karaf/0.7.0/karaf-0.7.0.tar.gz" % self.nexus_url
92 version = lib.extract_version(url)
93 self.assertEqual(version["version_major"], "7")
94 self.assertEqual(version["version_minor"], "0")
95 self.assertEqual(version["version_patch"], "0")
96 self.assertEqual(version["pkg_version"], "0.1.20170927rel1991")
97 self.assertEqual(version["codename"], "")
99 def test_nitrogen_autorelease_zip_url(self):
100 """Test URL of an ODL Nitrogen autorelease build zip archive."""
101 # noqa ShellCheckBear
102 url = "%s/autorelease-1991/org/opendaylight/integration/karaf/0.7.0/karaf-0.7.0.zip" % self.nexus_url
103 version = lib.extract_version(url)
104 self.assertEqual(version["version_major"], "7")
105 self.assertEqual(version["version_minor"], "0")
106 self.assertEqual(version["version_patch"], "0")
107 self.assertEqual(version["pkg_version"], "0.1.20170927rel1991")
108 self.assertEqual(version["codename"], "")
110 def test_carbon_snapshot_url(self):
111 """Test URL of an ODL Carbon snapshot build."""
112 # noqa ShellCheckBear
113 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
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.20171003snap847")
119 self.assertEqual(version["codename"], "-SNAPSHOT")
121 def test_carbon_snapshot_zip_url(self):
122 """Test URL of an ODL Carbon snapshot build zip archive."""
123 # noqa ShellCheckBear
124 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
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_nitrogen_snapshot_url(self):
133 """Test URL of an ODL Nitrogen snapshot build."""
134 # noqa ShellCheckBear
135 url = "%s/opendaylight.snapshot/org/opendaylight/integration/karaf/0.7.0-SNAPSHOT/karaf-0.7.0-20170927.033128-2013.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.20170927snap2013")
141 self.assertEqual(version["codename"], "-SNAPSHOT")
143 def test_nitrogen_snapshot_zip_url(self):
144 """Test URL of an ODL Nitrogen snapshot build zip archive."""
145 # noqa ShellCheckBear
146 url = "%s/opendaylight.snapshot/org/opendaylight/integration/karaf/0.7.0-SNAPSHOT/karaf-0.7.0-20170927.033128-2013.zip" % 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.20170927snap2013")
152 self.assertEqual(version["codename"], "-SNAPSHOT")
154 def test_oxygen_snapshot_url(self):
155 """Test URL of an ODL Oxygen snapshot build."""
156 # noqa ShellCheckBear
157 url = "%s/opendaylight.snapshot/org/opendaylight/integration/karaf/0.8.0-SNAPSHOT/karaf-0.8.0-20170928.142221-597.tar.gz" % self.nexus_url
158 version = lib.extract_version(url)
159 self.assertEqual(version["version_major"], "8")
160 self.assertEqual(version["version_minor"], "0")
161 self.assertEqual(version["version_patch"], "0")
162 self.assertEqual(version["pkg_version"], "0.1.20170928snap597")
163 self.assertEqual(version["codename"], "-SNAPSHOT")
165 def test_oxygen_snapshot_zip_url(self):
166 """Test URL of an ODL Oxygen snapshot build zip archive."""
167 # noqa ShellCheckBear
168 url = "%s/opendaylight.snapshot/org/opendaylight/integration/karaf/0.8.0-SNAPSHOT/karaf-0.8.0-20170928.142221-597.zip" % self.nexus_url
169 version = lib.extract_version(url)
170 self.assertEqual(version["version_major"], "8")
171 self.assertEqual(version["version_minor"], "0")
172 self.assertEqual(version["version_patch"], "0")
173 self.assertEqual(version["pkg_version"], "0.1.20170928snap597")
174 self.assertEqual(version["codename"], "-SNAPSHOT")
176 def test_carbon_multipatch_zip_url(self):
177 """Test URL of an ODL Carbon multipatch-test build zip archive."""
178 # noqa ShellCheckBear
179 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
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.20171002snap59")
185 self.assertEqual(version["codename"], "-SNAPSHOT")
187 def test_nitrogen_multipatch_zip_url(self):
188 """Test URL of an ODL Nitrogen multipatch-test build zip archive."""
189 # noqa ShellCheckBear
190 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
191 version = lib.extract_version(url)
192 self.assertEqual(version["version_major"], "7")
193 self.assertEqual(version["version_minor"], "1")
194 self.assertEqual(version["version_patch"], "0")
195 self.assertEqual(version["pkg_version"], "0.1.20171003snap9")
196 self.assertEqual(version["codename"], "-SNAPSHOT")
198 def test_oxygen_multipatch_zip_url(self):
199 """Test URL of an ODL Oxygen multipatch-test build zip archive."""
200 # noqa ShellCheckBear
201 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
202 version = lib.extract_version(url)
203 self.assertEqual(version["version_major"], "8")
204 self.assertEqual(version["version_minor"], "0")
205 self.assertEqual(version["version_patch"], "0")
206 self.assertEqual(version["pkg_version"], "0.1.20171003snap24")
207 self.assertEqual(version["codename"], "-SNAPSHOT")
210 class TestGetSnapURL(unittest.TestCase):
212 """Test logic get URL to latest snapshot build of given major version."""
214 url_base = "https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration"
216 def validate_snap_url(self, snap_url):
217 """Helper for validating snapshot URLs are sane."""
218 self.assertIn(self.url_base, snap_url)
219 self.assertIn("tar.gz", snap_url)
220 self.assertNotIn("release", snap_url)
221 self.assertNotIn("public", snap_url)
223 def test_carbon(self):
224 """Test Carbon major version gives sane snapshot URL."""
225 self.validate_snap_url(lib.get_snap_url("6"))
227 def test_nitrogen(self):
228 """Test Nitrogen major version gives sane snapshot URL."""
229 self.validate_snap_url(lib.get_snap_url("7"))
231 def test_oxygen(self):
232 """Test Oxygen major version gives sane snapshot URL."""
233 self.validate_snap_url(lib.get_snap_url("8"))
236 class TestGetDistroNamePrefix(unittest.TestCase):
238 """Test logic to get Karaf 3/4 distro name prefix per ODL major version."""
240 k3_distro_prefix = "distribution-karaf"
241 k4_distro_prefix = "karaf"
243 def test_carbon(self):
244 """Test Carbon major version gives Karaf 3 prefix."""
245 distro_prefix = lib.get_distro_name_prefix("6")
246 self.assertEqual(distro_prefix, self.k3_distro_prefix)
248 def test_nitrogen(self):
249 """Test Nitrogen major version gives Karaf 4 prefix."""
250 distro_prefix = lib.get_distro_name_prefix("7")
251 self.assertEqual(distro_prefix, self.k4_distro_prefix)
253 def test_oxygen(self):
254 """Test Oxygen major version gives Karaf 4 prefix."""
255 distro_prefix = lib.get_distro_name_prefix("8")
256 self.assertEqual(distro_prefix, self.k4_distro_prefix)
258 def test_carbon_int(self):
259 """Test Carbon major version as int gives Karaf 3 prefix."""
260 distro_prefix = lib.get_distro_name_prefix(6)
261 self.assertEqual(distro_prefix, self.k3_distro_prefix)
263 def test_nitrogen_int(self):
264 """Test Nitrogen major version as int gives Karaf 4 prefix."""
265 distro_prefix = lib.get_distro_name_prefix(7)
266 self.assertEqual(distro_prefix, self.k4_distro_prefix)
268 def test_oxygen_int(self):
269 """Test Oxygen major version as int gives Karaf 4 prefix."""
270 distro_prefix = lib.get_distro_name_prefix(8)
271 self.assertEqual(distro_prefix, self.k4_distro_prefix)