[Notes] [Git][BuildStream/buildstream][mablanch/447-stack-trace-checkout] 2 commits: element.py: Raise an exception on unbuilt element checkout



Title: GitLab

Martin Blanchard pushed to branch mablanch/447-stack-trace-checkout at BuildStream / buildstream

Commits:

3 changed files:

Changes:

  • buildstream/_stream.py
    ... ... @@ -435,7 +435,7 @@ class Stream():
    435 435
     
    
    436 436
             except BstError as e:
    
    437 437
                 raise StreamError("Error while staging dependencies into a sandbox"
    
    438
    -                              ": '{}'".format(e), reason=e.reason) from e
    
    438
    +                              ": '{}'".format(e), detail=e.detail, reason=e.reason) from e
    
    439 439
     
    
    440 440
         # workspace_open
    
    441 441
         #
    

  • buildstream/element.py
    ... ... @@ -614,6 +614,12 @@ class Element(Plugin):
    614 614
                   dep.stage_artifact(sandbox)
    
    615 615
             """
    
    616 616
     
    
    617
    +        if not self._cached():
    
    618
    +            detail = "No artifacts have been cached yet for that element\n" + \
    
    619
    +                     "Try building the element first with `bst build`\n"
    
    620
    +            raise ElementError("No artifacts to stage",
    
    621
    +                               detail=detail, reason="uncached-checkout-attempt")
    
    622
    +
    
    617 623
             if update_mtimes is None:
    
    618 624
                 update_mtimes = []
    
    619 625
     
    

  • tests/frontend/buildcheckout.py
    ... ... @@ -96,6 +96,16 @@ def test_build_checkout_deps(datafiles, cli, deps):
    96 96
             assert not os.path.exists(filename)
    
    97 97
     
    
    98 98
     
    
    99
    +@pytest.mark.datafiles(DATA_DIR)
    
    100
    +def test_build_checkout_unbuilt(datafiles, cli):
    
    101
    +    project = os.path.join(datafiles.dirname, datafiles.basename)
    
    102
    +    checkout = os.path.join(cli.directory, 'checkout')
    
    103
    +
    
    104
    +    # Check that checking out an unbuilt element fails nicely
    
    105
    +    result = cli.run(project=project, args=['checkout', 'target.bst', checkout])
    
    106
    +    result.assert_main_error(ErrorDomain.STREAM, "uncached-checkout-attempt")
    
    107
    +
    
    108
    +
    
    99 109
     @pytest.mark.datafiles(DATA_DIR)
    
    100 110
     def test_build_checkout_tarball(datafiles, cli):
    
    101 111
         project = os.path.join(datafiles.dirname, datafiles.basename)
    



  • [Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]