summaryrefslogtreecommitdiff
path: root/lib/spack/spack/test/package_class.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/spack/spack/test/package_class.py')
-rw-r--r--lib/spack/spack/test/package_class.py146
1 files changed, 77 insertions, 69 deletions
diff --git a/lib/spack/spack/test/package_class.py b/lib/spack/spack/test/package_class.py
index 15fd1237fb..87cb9a009a 100644
--- a/lib/spack/spack/test/package_class.py
+++ b/lib/spack/spack/test/package_class.py
@@ -23,62 +23,60 @@ import spack.repo
@pytest.fixture(scope="module")
def mpi_names(mock_repo_path):
- return [spec.name for spec in mock_repo_path.providers_for('mpi')]
+ return [spec.name for spec in mock_repo_path.providers_for("mpi")]
@pytest.fixture()
def mpileaks_possible_deps(mock_packages, mpi_names):
possible = {
- 'callpath': set(['dyninst'] + mpi_names),
- 'low-priority-provider': set(),
- 'dyninst': set(['libdwarf', 'libelf']),
- 'fake': set(),
- 'libdwarf': set(['libelf']),
- 'libelf': set(),
- 'mpich': set(),
- 'mpich2': set(),
- 'mpileaks': set(['callpath'] + mpi_names),
- 'multi-provider-mpi': set(),
- 'zmpi': set(['fake']),
+ "callpath": set(["dyninst"] + mpi_names),
+ "low-priority-provider": set(),
+ "dyninst": set(["libdwarf", "libelf"]),
+ "fake": set(),
+ "libdwarf": set(["libelf"]),
+ "libelf": set(),
+ "mpich": set(),
+ "mpich2": set(),
+ "mpileaks": set(["callpath"] + mpi_names),
+ "multi-provider-mpi": set(),
+ "zmpi": set(["fake"]),
}
return possible
def test_possible_dependencies(mock_packages, mpileaks_possible_deps):
- pkg_cls = spack.repo.path.get_pkg_class('mpileaks')
+ pkg_cls = spack.repo.path.get_pkg_class("mpileaks")
expanded_possible_deps = pkg_cls.possible_dependencies(expand_virtuals=True)
assert mpileaks_possible_deps == expanded_possible_deps
assert {
- 'callpath': {'dyninst', 'mpi'},
- 'dyninst': {'libdwarf', 'libelf'},
- 'libdwarf': {'libelf'},
- 'libelf': set(),
- 'mpi': set(),
- 'mpileaks': {'callpath', 'mpi'},
+ "callpath": {"dyninst", "mpi"},
+ "dyninst": {"libdwarf", "libelf"},
+ "libdwarf": {"libelf"},
+ "libelf": set(),
+ "mpi": set(),
+ "mpileaks": {"callpath", "mpi"},
} == pkg_cls.possible_dependencies(expand_virtuals=False)
def test_possible_direct_dependencies(mock_packages, mpileaks_possible_deps):
- pkg_cls = spack.repo.path.get_pkg_class('mpileaks')
+ pkg_cls = spack.repo.path.get_pkg_class("mpileaks")
deps = pkg_cls.possible_dependencies(transitive=False, expand_virtuals=False)
assert {
- 'callpath': set(),
- 'mpi': set(),
- 'mpileaks': {'callpath', 'mpi'},
+ "callpath": set(),
+ "mpi": set(),
+ "mpileaks": {"callpath", "mpi"},
} == deps
def test_possible_dependencies_virtual(mock_packages, mpi_names):
expected = dict(
- (name, set(spack.repo.path.get_pkg_class(name).dependencies))
- for name in mpi_names
+ (name, set(spack.repo.path.get_pkg_class(name).dependencies)) for name in mpi_names
)
# only one mock MPI has a dependency
- expected['fake'] = set()
+ expected["fake"] = set()
- assert expected == spack.package_base.possible_dependencies(
- "mpi", transitive=False)
+ assert expected == spack.package_base.possible_dependencies("mpi", transitive=False)
def test_possible_dependencies_missing(mock_packages):
@@ -89,36 +87,37 @@ def test_possible_dependencies_missing(mock_packages):
def test_possible_dependencies_with_deptypes(mock_packages):
- dtbuild1 = spack.repo.path.get_pkg_class('dtbuild1')
+ dtbuild1 = spack.repo.path.get_pkg_class("dtbuild1")
assert {
- 'dtbuild1': {'dtrun2', 'dtlink2'},
- 'dtlink2': set(),
- 'dtrun2': set(),
- } == dtbuild1.possible_dependencies(deptype=('link', 'run'))
+ "dtbuild1": {"dtrun2", "dtlink2"},
+ "dtlink2": set(),
+ "dtrun2": set(),
+ } == dtbuild1.possible_dependencies(deptype=("link", "run"))
assert {
- 'dtbuild1': {'dtbuild2', 'dtlink2'},
- 'dtbuild2': set(),
- 'dtlink2': set(),
- } == dtbuild1.possible_dependencies(deptype=('build'))
+ "dtbuild1": {"dtbuild2", "dtlink2"},
+ "dtbuild2": set(),
+ "dtlink2": set(),
+ } == dtbuild1.possible_dependencies(deptype=("build"))
assert {
- 'dtbuild1': {'dtlink2'},
- 'dtlink2': set(),
- } == dtbuild1.possible_dependencies(deptype=('link'))
+ "dtbuild1": {"dtlink2"},
+ "dtlink2": set(),
+ } == dtbuild1.possible_dependencies(deptype=("link"))
-def test_possible_dependencies_with_multiple_classes(
- mock_packages, mpileaks_possible_deps):
- pkgs = ['dt-diamond', 'mpileaks']
+def test_possible_dependencies_with_multiple_classes(mock_packages, mpileaks_possible_deps):
+ pkgs = ["dt-diamond", "mpileaks"]
expected = mpileaks_possible_deps.copy()
- expected.update({
- 'dt-diamond': set(['dt-diamond-left', 'dt-diamond-right']),
- 'dt-diamond-left': set(['dt-diamond-bottom']),
- 'dt-diamond-right': set(['dt-diamond-bottom']),
- 'dt-diamond-bottom': set(),
- })
+ expected.update(
+ {
+ "dt-diamond": set(["dt-diamond-left", "dt-diamond-right"]),
+ "dt-diamond-left": set(["dt-diamond-bottom"]),
+ "dt-diamond-right": set(["dt-diamond-bottom"]),
+ "dt-diamond-bottom": set(),
+ }
+ )
assert expected == spack.package_base.possible_dependencies(*pkgs)
@@ -138,20 +137,29 @@ def setup_install_test(source_paths, install_test_root):
fs.mkdirp(path)
-@pytest.mark.parametrize('spec,sources,extras,expect', [
- ('a',
- ['example/a.c'], # Source(s)
- ['example/a.c'], # Extra test source
- ['example/a.c']), # Test install dir source(s)
- ('b',
- ['test/b.cpp', 'test/b.hpp', 'example/b.txt'], # Source(s)
- ['test'], # Extra test source
- ['test/b.cpp', 'test/b.hpp']), # Test install dir source
- ('c',
- ['examples/a.py', 'examples/b.py', 'examples/c.py', 'tests/d.py'],
- ['examples/b.py', 'tests'],
- ['examples/b.py', 'tests/d.py']),
-])
+@pytest.mark.parametrize(
+ "spec,sources,extras,expect",
+ [
+ (
+ "a",
+ ["example/a.c"], # Source(s)
+ ["example/a.c"], # Extra test source
+ ["example/a.c"],
+ ), # Test install dir source(s)
+ (
+ "b",
+ ["test/b.cpp", "test/b.hpp", "example/b.txt"], # Source(s)
+ ["test"], # Extra test source
+ ["test/b.cpp", "test/b.hpp"],
+ ), # Test install dir source
+ (
+ "c",
+ ["examples/a.py", "examples/b.py", "examples/c.py", "tests/d.py"],
+ ["examples/b.py", "tests"],
+ ["examples/b.py", "tests/d.py"],
+ ),
+ ],
+)
def test_cache_extra_sources(install_mockery, spec, sources, extras, expect):
"""Test the package's cache extra test sources helper function."""
s = spack.spec.Spec(spec).concretized()
@@ -161,10 +169,10 @@ def test_cache_extra_sources(install_mockery, spec, sources, extras, expect):
srcs = [fs.join_path(source_path, src) for src in sources]
setup_install_test(srcs, s.package.install_test_root)
- emsg_dir = 'Expected {0} to be a directory'
- emsg_file = 'Expected {0} to be a file'
+ emsg_dir = "Expected {0} to be a directory"
+ emsg_file = "Expected {0} to be a file"
for src in srcs:
- assert os.path.exists(src), 'Expected {0} to exist'.format(src)
+ assert os.path.exists(src), "Expected {0} to exist".format(src)
if os.path.splitext(src)[1]:
assert os.path.isfile(src), emsg_file.format(src)
else:
@@ -176,16 +184,16 @@ def test_cache_extra_sources(install_mockery, spec, sources, extras, expect):
exp_dests = [fs.join_path(s.package.install_test_root, e) for e in expect]
poss_dests = set(src_dests) | set(exp_dests)
- msg = 'Expected {0} to{1} exist'
+ msg = "Expected {0} to{1} exist"
for pd in poss_dests:
if pd in exp_dests:
- assert os.path.exists(pd), msg.format(pd, '')
+ assert os.path.exists(pd), msg.format(pd, "")
if os.path.splitext(pd)[1]:
assert os.path.isfile(pd), emsg_file.format(pd)
else:
assert os.path.isdir(pd), emsg_dir.format(pd)
else:
- assert not os.path.exists(pd), msg.format(pd, ' not')
+ assert not os.path.exists(pd), msg.format(pd, " not")
# Perform a little cleanup
shutil.rmtree(os.path.dirname(source_path))