diff --git a/avocado/utils/kernel.py b/avocado/utils/kernel.py index 235353973d7cfd0976c28877f64766eddefb5e33..a953e90a825b9f97729a9c5f83fda845558b3bd2 100644 --- a/avocado/utils/kernel.py +++ b/avocado/utils/kernel.py @@ -63,6 +63,12 @@ class KernelBuild(object): self.config_path, self.work_dir) + def _build_kernel_url(self, base_url=None): + kernel_file = self.SOURCE.format(version=self.version) + if base_url is None: + base_url = self.URL.format(major=self.version.split('.', 1)[0]) + return base_url + kernel_file + def download(self, url=None): """ Download kernel source. @@ -71,19 +77,7 @@ class KernelBuild(object): source tarball :type url: str or None """ - - kernel_file = self.SOURCE.format(version=self.version) - # if there's no url to override, the default is the one - # specified in the class - if url is None: - base_url = self.URL.format(major=self.version.split('.', 1)[0]) - - # however, if there's a url informed as a parameter, this one - # should be used as the base url. - else: - base_url = url - full_url = base_url + kernel_file - + full_url = self._build_kernel_url(base_url=url) self.asset_path = asset.Asset(full_url, asset_hash=None, algorithm=None, locations=None, cache_dirs=self.data_dirs).fetch() diff --git a/selftests/unit/test_utils_kernel.py b/selftests/unit/test_utils_kernel.py new file mode 100644 index 0000000000000000000000000000000000000000..b9ecbcfcc1071b7d7b02fa0e310c5755720d5f28 --- /dev/null +++ b/selftests/unit/test_utils_kernel.py @@ -0,0 +1,18 @@ +import unittest + +from avocado.utils.kernel import KernelBuild + + +class TestKernelBuild(unittest.TestCase): + def setUp(self): + self.kernel_version = '4.4.133' + self.kernel = KernelBuild(self.kernel_version) + + def test_build_default_url(self): + expected_url = 'https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.133.tar.gz' + self.assertEqual(self.kernel._build_kernel_url(), expected_url) + + def test_build_overrided_url(self): + base_url = 'https://mykernel.com/' + expected_url = '{}linux-4.4.133.tar.gz'.format(base_url) + self.assertEqual(self.kernel._build_kernel_url(base_url=base_url), expected_url)