From e1e804168a4578e47ce3917ce9fa8ba60aebd504 Mon Sep 17 00:00:00 2001 From: Axel Huebl Date: Wed, 15 Apr 2020 10:18:17 -0700 Subject: Tests: Mirror Mixin Classes --- lib/spack/spack/test/build_systems.py | 69 +++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) (limited to 'lib') diff --git a/lib/spack/spack/test/build_systems.py b/lib/spack/spack/test/build_systems.py index 7ede78b7a5..295704798f 100644 --- a/lib/spack/spack/test/build_systems.py +++ b/lib/spack/spack/test/build_systems.py @@ -219,3 +219,72 @@ class TestCMakePackage(object): with pytest.raises(KeyError, match="not a variant"): pkg.define_from_variant('NONEXISTENT') + + +@pytest.mark.usefixtures('config', 'mock_packages') +class TestGNUMirrorPackage(object): + + def test_define(self): + s = Spec('mirror-gnu') + s.concretize() + pkg = spack.repo.get(s) + + s = Spec('mirror-gnu-broken') + s.concretize() + pkg_broken = spack.repo.get(s) + + cls_name = type(pkg_broken).__name__ + with pytest.raises(AttributeError, + match=r'{0} must define a `gnu_mirror_path` ' + r'attribute \[none defined\]' + .format(cls_name)): + pkg_broken.urls + + assert pkg.urls[0] == 'https://ftpmirror.gnu.org/' \ + 'make/make-4.2.1.tar.gz' + + +@pytest.mark.usefixtures('config', 'mock_packages') +class TestSourcewarePackage(object): + + def test_define(self): + s = Spec('mirror-sourceware') + s.concretize() + pkg = spack.repo.get(s) + + s = Spec('mirror-sourceware-broken') + s.concretize() + pkg_broken = spack.repo.get(s) + + cls_name = type(pkg_broken).__name__ + with pytest.raises(AttributeError, + match=r'{0} must define a `sourceware_mirror_path` ' + r'attribute \[none defined\]' + .format(cls_name)): + pkg_broken.urls + + assert pkg.urls[0] == 'https://sourceware.org/pub/' \ + 'bzip2/bzip2-1.0.8.tar.gz' + + +@pytest.mark.usefixtures('config', 'mock_packages') +class TestXorgPackage(object): + + def test_define(self): + s = Spec('mirror-xorg') + s.concretize() + pkg = spack.repo.get(s) + + s = Spec('mirror-xorg-broken') + s.concretize() + pkg_broken = spack.repo.get(s) + + cls_name = type(pkg_broken).__name__ + with pytest.raises(AttributeError, + match=r'{0} must define a `xorg_mirror_path` ' + r'attribute \[none defined\]' + .format(cls_name)): + pkg_broken.urls + + assert pkg.urls[0] == 'https://www.x.org/archive/individual/' \ + 'util/util-macros-1.19.1.tar.bz2' -- cgit v1.2.3-70-g09d2