summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Smith <qinusty@gmail.com>2018-09-07 16:27:39 +0100
committerJosh Smith <qinusty@gmail.com>2018-09-12 15:44:38 +0100
commit8860fbfad36b17620713db2d591669b44fffdf2f (patch)
tree09edfdd1843e1846e90308f2a1f816020edda03b
parent851aac8dc7ac4901d049d13d993c83f2e1c09f14 (diff)
downloadbuildstream-8860fbfad36b17620713db2d591669b44fffdf2f.tar.gz
tests.py: Test skip on push
Adds a test to ensure that BuildStream alerts the user of a skipped push when the remote already has the artifact cached.
-rw-r--r--tests/frontend/push.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/frontend/push.py b/tests/frontend/push.py
index f351e33be..f2d6814d6 100644
--- a/tests/frontend/push.py
+++ b/tests/frontend/push.py
@@ -386,3 +386,26 @@ def test_push_cross_junction(cli, tmpdir, datafiles):
cache_key = cli.get_element_key(project, 'junction.bst:import-etc.bst')
assert share.has_artifact('subtest', 'import-etc.bst', cache_key)
+
+
+@pytest.mark.datafiles(DATA_DIR)
+def test_push_already_cached(caplog, cli, tmpdir, datafiles):
+ project = os.path.join(datafiles.dirname, datafiles.basename)
+ caplog.set_level(1)
+
+ with create_artifact_share(os.path.join(str(tmpdir), 'artifactshare')) as share:
+
+ cli.configure({
+ 'artifacts': {'url': share.repo, 'push': True}
+ })
+ result = cli.run(project=project, args=['build', 'target.bst'])
+
+ result.assert_success()
+ assert "SKIPPED Push" not in result.stderr
+
+ result = cli.run(project=project, args=['push', 'target.bst'])
+
+ result.assert_success()
+ assert not result.get_pushed_elements(), "No elements should have been pushed since the cache was populated"
+ assert "INFO Remote ({}) already has ".format(share.repo) in result.stderr
+ assert "SKIPPED Push" in result.stderr