def test_url_for_version_with_no_urls(): pkg = spack.repo.get('git-test') with pytest.raises(spack.package.NoURLError): pkg.url_for_version('1.0') with pytest.raises(spack.package.NoURLError): pkg.url_for_version('1.1')
def test_url_for_version_with_only_overrides_with_gaps(mock_packages, config): spec = Spec('url-only-override-with-gaps') spec.concretize() pkg = spack.repo.get(spec) # same as for url-only-override -- these are specific assert pkg.url_for_version('1.0.0') == 'http://a.example.com/url_override-1.0.0.tar.gz' assert pkg.url_for_version('0.9.0') == 'http://b.example.com/url_override-0.9.0.tar.gz' assert pkg.url_for_version('0.8.1') == 'http://c.example.com/url_override-0.8.1.tar.gz' # these don't have specific URLs, but should still work by extrapolation assert pkg.url_for_version('1.0.5') == 'http://a.example.com/url_override-1.0.5.tar.gz' assert pkg.url_for_version('0.9.5') == 'http://b.example.com/url_override-0.9.5.tar.gz' assert pkg.url_for_version('0.8.5') == 'http://c.example.com/url_override-0.8.5.tar.gz' assert pkg.url_for_version('0.7.0') == 'http://c.example.com/url_override-0.7.0.tar.gz'
def test_url_for_version_with_only_overrides(mock_packages, config): spec = Spec('url-only-override') spec.concretize() pkg = spack.repo.get(spec) # these exist and should just take the URL provided in the package assert pkg.url_for_version('1.0.0') == 'http://a.example.com/url_override-1.0.0.tar.gz' assert pkg.url_for_version('0.9.0') == 'http://b.example.com/url_override-0.9.0.tar.gz' assert pkg.url_for_version('0.8.1') == 'http://c.example.com/url_override-0.8.1.tar.gz' # these don't exist but should still work, even if there are only overrides assert pkg.url_for_version('1.0.5') == 'http://a.example.com/url_override-1.0.5.tar.gz' assert pkg.url_for_version('0.9.5') == 'http://b.example.com/url_override-0.9.5.tar.gz' assert pkg.url_for_version('0.8.5') == 'http://c.example.com/url_override-0.8.5.tar.gz' assert pkg.url_for_version('0.7.0') == 'http://c.example.com/url_override-0.7.0.tar.gz'