Exemple #1
0
def test_build_request_errors(install_mockery):
    with pytest.raises(ValueError, match='must be a package'):
        inst.BuildRequest('abc', {})

    pkg = spack.repo.get('trivial-install-test-package')
    with pytest.raises(ValueError, match='must have a concrete spec'):
        inst.BuildRequest(pkg, {})
Exemple #2
0
def test_build_request_errors(install_mockery):
    with pytest.raises(ValueError, match='must be a package'):
        inst.BuildRequest('abc', {})

    spec = spack.spec.Spec('trivial-install-test-package')
    pkg_cls = spack.repo.path.get_pkg_class(spec.name)
    with pytest.raises(ValueError, match='must have a concrete spec'):
        inst.BuildRequest(pkg_cls(spec), {})
Exemple #3
0
def create_build_task(pkg, install_args={}):
    """
    Create a built task for the given (concretized) package

    Args:
        pkg (PackageBase): concretized package associated with the task
        install_args (dict): dictionary of kwargs (or install args)

    Return:
        (BuildTask) A basic package build task
    """
    request = inst.BuildRequest(pkg, install_args)
    return inst.BuildTask(pkg, request, False, 0, 0, inst.STATUS_ADDED, [])
Exemple #4
0
def test_build_request_basics(install_mockery):
    spec = spack.spec.Spec('dependent-install')
    spec.concretize()
    assert spec.concrete

    # Ensure key properties match expectations
    request = inst.BuildRequest(spec.package, {})
    assert not request.pkg.stop_before_phase
    assert not request.pkg.last_phase
    assert request.spec == spec.package.spec

    # Ensure key default install arguments are set
    assert 'install_package' in request.install_args
    assert 'install_deps' in request.install_args
Exemple #5
0
def test_build_request_strings(install_mockery):
    """Tests of BuildRequest repr and str for coverage purposes."""
    # Using a package with one dependency
    spec = spack.spec.Spec('dependent-install')
    spec.concretize()
    assert spec.concrete

    # Ensure key properties match expectations
    request = inst.BuildRequest(spec.package, {})

    # Cover __repr__
    irep = request.__repr__()
    assert irep.startswith(request.__class__.__name__)

    # Cover __str__
    istr = str(request)
    assert "package=dependent-install" in istr
    assert "install_args=" in istr
Exemple #6
0
def test_build_task_errors(install_mockery):
    with pytest.raises(ValueError, match='must be a package'):
        inst.BuildTask('abc', None, False, 0, 0, 0, [])

    pkg = spack.repo.get('trivial-install-test-package')
    with pytest.raises(ValueError, match='must have a concrete spec'):
        inst.BuildTask(pkg, None, False, 0, 0, 0, [])

    spec = spack.spec.Spec('trivial-install-test-package')
    spec.concretize()
    assert spec.concrete
    with pytest.raises(ValueError, match='must have a build request'):
        inst.BuildTask(spec.package, None, False, 0, 0, 0, [])

    request = inst.BuildRequest(spec.package, {})
    with pytest.raises(inst.InstallError, match='Cannot create a build task'):
        inst.BuildTask(spec.package, request, False, 0, 0, inst.STATUS_REMOVED,
                       [])
Exemple #7
0
def test_build_task_basics(install_mockery):
    spec = spack.spec.Spec('dependent-install')
    spec.concretize()
    assert spec.concrete

    # Ensure key properties match expectations
    request = inst.BuildRequest(spec.package, {})
    task = inst.BuildTask(spec.package, request, False, 0, 0,
                          inst.STATUS_ADDED, [])
    assert task.explicit  # package was "explicitly" requested
    assert task.priority == len(task.uninstalled_deps)
    assert task.key == (task.priority, task.sequence)

    # Ensure flagging installed works as expected
    assert len(task.uninstalled_deps) > 0
    assert task.dependencies == task.uninstalled_deps
    task.flag_installed(task.dependencies)
    assert len(task.uninstalled_deps) == 0
    assert task.priority == 0
Exemple #8
0
def test_build_task_strings(install_mockery):
    """Tests of build_task repr and str for coverage purposes."""
    # Using a package with one dependency
    spec = spack.spec.Spec('dependent-install')
    spec.concretize()
    assert spec.concrete

    # Ensure key properties match expectations
    request = inst.BuildRequest(spec.package, {})
    task = inst.BuildTask(spec.package, request, False, 0, 0,
                          inst.STATUS_ADDED, [])

    # Cover __repr__
    irep = task.__repr__()
    assert irep.startswith(task.__class__.__name__)
    assert "status='queued'" in irep  # == STATUS_ADDED
    assert "sequence=" in irep

    # Cover __str__
    istr = str(task)
    assert "status=queued" in istr  # == STATUS_ADDED
    assert "#dependencies=1" in istr
    assert "priority=" in istr