summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Kosukhin <skosukhin@gmail.com>2017-10-28 02:41:41 +0200
committerscheibelp <scheibel1@llnl.gov>2017-10-27 17:41:41 -0700
commit5ebddcd5e3491887e34571e0d02e4c992ab531c0 (patch)
treea519c61c8844ff4ebd456a28131e55399ef9281f
parent95c8ecb6f503fada33056aabcf081bf857c28f53 (diff)
downloadspack-5ebddcd5e3491887e34571e0d02e4c992ab531c0.tar.gz
spack-5ebddcd5e3491887e34571e0d02e4c992ab531c0.tar.bz2
spack-5ebddcd5e3491887e34571e0d02e4c992ab531c0.tar.xz
spack-5ebddcd5e3491887e34571e0d02e4c992ab531c0.zip
Bugfix: from_list_url(). (#5780)
This fixes a bug in from_list_url where it was referring to a method which no longer exists. This also adds a test for the from_list_url function.
-rw-r--r--lib/spack/spack/fetch_strategy.py2
-rw-r--r--lib/spack/spack/test/url_fetch.py15
-rw-r--r--var/spack/repos/builtin.mock/packages/url-list-test/package.py49
3 files changed, 65 insertions, 1 deletions
diff --git a/lib/spack/spack/fetch_strategy.py b/lib/spack/spack/fetch_strategy.py
index 9aa6b9afd1..45513654c9 100644
--- a/lib/spack/spack/fetch_strategy.py
+++ b/lib/spack/spack/fetch_strategy.py
@@ -960,7 +960,7 @@ def from_list_url(pkg):
the specified package's version."""
if pkg.list_url:
try:
- versions = pkg.fetch_remote_package_versions()
+ versions = pkg.fetch_remote_versions()
try:
url_from_list = versions[pkg.version]
digest = None
diff --git a/lib/spack/spack/test/url_fetch.py b/lib/spack/spack/test/url_fetch.py
index fba087dc99..8ce8be5e9d 100644
--- a/lib/spack/spack/test/url_fetch.py
+++ b/lib/spack/spack/test/url_fetch.py
@@ -28,6 +28,7 @@ import pytest
from llnl.util.filesystem import working_dir, is_exe
import spack
+from spack.fetch_strategy import from_list_url, URLFetchStrategy
from spack.spec import Spec
from spack.version import ver
import spack.util.crypto as crypto
@@ -82,6 +83,20 @@ def test_fetch(
assert 'echo Building...' in contents
+def test_from_list_url(builtin_mock, config):
+ pkg = spack.repo.get('url-list-test', new=True)
+ for ver_str in ['0.0.0', '1.0.0', '2.0.0',
+ '3.0', '4.5', '2.0.0b2',
+ '3.0a1', '4.5-rc5']:
+ spec = Spec('url-list-test@%s' % ver_str)
+ spec.concretize()
+ pkg.spec = spec
+ fetch_strategy = from_list_url(pkg)
+ assert isinstance(fetch_strategy, URLFetchStrategy)
+ assert (os.path.basename(fetch_strategy.url) ==
+ ('foo-' + ver_str + '.tar.gz'))
+
+
def test_hash_detection(checksum_type):
algo = crypto.hashes[checksum_type]()
h = 'f' * (algo.digest_size * 2) # hex -> bytes
diff --git a/var/spack/repos/builtin.mock/packages/url-list-test/package.py b/var/spack/repos/builtin.mock/packages/url-list-test/package.py
new file mode 100644
index 0000000000..11f8f18e97
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/url-list-test/package.py
@@ -0,0 +1,49 @@
+##############################################################################
+# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+import os
+import spack
+
+
+class UrlListTest(Package):
+ """Mock package with url_list."""
+ homepage = "http://www.url-list-example.com"
+
+ web_data_path = os.path.join(spack.test_path, 'data', 'web')
+ url = 'file://' + web_data_path + '/foo-0.0.0.tar.gz'
+ list_url = 'file://' + web_data_path + '/index.html'
+ list_depth = 3
+
+ version('0.0.0')
+ version('1.0.0')
+ version('3.0')
+ version('4.5')
+ version('2.0.0b2')
+ version('3.0a1')
+ version('4.5-rc5')
+
+ def install(self, spec, prefix):
+ pass