Source code for spack.test.cmd.concretize

# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)


import pytest

import spack.environment as ev
from spack.main import SpackCommand

# everything here uses the mock_env_path
pytestmark = pytest.mark.usefixtures(
    'mutable_mock_env_path', 'config', 'mutable_mock_repo')

env        = SpackCommand('env')
add        = SpackCommand('add')
concretize = SpackCommand('concretize')


unification_strategies = [False, True, 'when_possible']


[docs]@pytest.mark.parametrize('unify', unification_strategies) def test_concretize_all_test_dependencies(unify): """Check all test dependencies are concretized.""" env('create', 'test') with ev.read('test') as e: e.unify = unify add('depb') concretize('--test', 'all') assert e.matching_spec('test-dependency')
[docs]@pytest.mark.parametrize('unify', unification_strategies) def test_concretize_root_test_dependencies_not_recursive(unify): """Check that test dependencies are not concretized recursively.""" env('create', 'test') with ev.read('test') as e: e.unify = unify add('depb') concretize('--test', 'root') assert e.matching_spec('test-dependency') is None
[docs]@pytest.mark.parametrize('unify', unification_strategies) def test_concretize_root_test_dependencies_are_concretized(unify): """Check that root test dependencies are concretized.""" env('create', 'test') with ev.read('test') as e: e.unify = unify add('a') add('b') concretize('--test', 'root') assert e.matching_spec('test-dependency')