diff options
author | Tristan Van Berkom <tristan.vanberkom@codethink.co.uk> | 2018-04-19 13:39:05 +0900 |
---|---|---|
committer | Tristan Van Berkom <tristan.vanberkom@codethink.co.uk> | 2018-04-19 15:11:47 +0900 |
commit | 670487bed0019048aa48576442fffd4d7368d4e3 (patch) | |
tree | 3b9ba16f06f78c86b147535e5dcf16e7a7e2f717 /tests/frontend/track.py | |
parent | d73d75c4e4091174cea307b2ff22687e8f513ef0 (diff) | |
download | buildstream-670487bed0019048aa48576442fffd4d7368d4e3.tar.gz |
tests/frontend/track.py: Added test for `bst track --deps none`
This guards against regressions of issue #367
Diffstat (limited to 'tests/frontend/track.py')
-rw-r--r-- | tests/frontend/track.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/frontend/track.py b/tests/frontend/track.py index 5142dee45..f8818ffb5 100644 --- a/tests/frontend/track.py +++ b/tests/frontend/track.py @@ -117,6 +117,46 @@ def test_track_recurse(cli, tmpdir, datafiles, kind): @pytest.mark.datafiles(DATA_DIR) +def test_track_single(cli, tmpdir, datafiles): + project = os.path.join(datafiles.dirname, datafiles.basename) + dev_files_path = os.path.join(project, 'files', 'dev-files') + element_path = os.path.join(project, 'elements') + element_dep_name = 'track-test-dep.bst' + element_target_name = 'track-test-target.bst' + + # Create our repo object of the given source type with + # the dev files, and then collect the initial ref. + # + repo = create_repo('git', str(tmpdir)) + ref = repo.create(dev_files_path) + + # Write out our test targets + generate_element(repo, os.path.join(element_path, element_dep_name)) + generate_element(repo, os.path.join(element_path, element_target_name), + dep_name=element_dep_name) + + # Assert that tracking is needed for both elements + assert cli.get_element_state(project, element_dep_name) == 'no reference' + assert cli.get_element_state(project, element_target_name) == 'no reference' + + # Now first try to track only one element + result = cli.run(project=project, args=[ + 'track', '--deps', 'none', + element_target_name]) + result.assert_success() + + # And now fetch it + result = cli.run(project=project, args=[ + 'fetch', '--deps', 'none', + element_target_name]) + result.assert_success() + + # Assert that the dependency is waiting and the target has still never been tracked + assert cli.get_element_state(project, element_dep_name) == 'no reference' + assert cli.get_element_state(project, element_target_name) == 'waiting' + + +@pytest.mark.datafiles(DATA_DIR) @pytest.mark.parametrize("kind", [(kind) for kind in ALL_REPO_KINDS]) def test_track_recurse_except(cli, tmpdir, datafiles, kind): project = os.path.join(datafiles.dirname, datafiles.basename) |