summaryrefslogtreecommitdiff
path: root/tests/artifactcache
diff options
context:
space:
mode:
authorTristan Van Berkom <tristan.vanberkom@codethink.co.uk>2017-03-10 18:12:23 +0900
committerTristan Van Berkom <tristan.vanberkom@codethink.co.uk>2017-03-10 18:12:23 +0900
commit7ad82778f8c6afeb1252f1315d424714ac0eea3e (patch)
tree44d867bbaf65c0ea9c0ed9d7d51bdf9bdd98d0f0 /tests/artifactcache
parentb40ccd00ca59f8614d3d1a39d5b4d1f778a33018 (diff)
downloadbuildstream-7ad82778f8c6afeb1252f1315d424714ac0eea3e.tar.gz
Updated artifact cache test cases.
Now these load an actual (simple) pipeline, so there is a fully qualified Element to use for testing the API. Also we now expect a specific ArtifactError for failures instead of using the xfail pytest decorator, which is a bit nicer.
Diffstat (limited to 'tests/artifactcache')
-rw-r--r--tests/artifactcache/basics.py44
-rw-r--r--tests/artifactcache/basics/project.conf3
-rw-r--r--tests/artifactcache/basics/simple.bst5
3 files changed, 31 insertions, 21 deletions
diff --git a/tests/artifactcache/basics.py b/tests/artifactcache/basics.py
index 4d20c9a92..d8c17618b 100644
--- a/tests/artifactcache/basics.py
+++ b/tests/artifactcache/basics.py
@@ -2,38 +2,40 @@ import os
import pytest
import tempfile
-from buildstream import Context
-from buildstream._artifactcache import ArtifactCache
+from buildstream import Context, Project
+from buildstream._artifactcache import ArtifactCache, ArtifactError
+from buildstream._pipeline import Pipeline
+
+DATA_DIR = os.path.join(
+ os.path.dirname(os.path.realpath(__file__)),
+ 'basics',
+)
@pytest.fixture()
-def context(tmpdir):
+def pipeline(tmpdir):
context = Context('x86_64')
- context.load()
+ project = Project(DATA_DIR, 'x86_64')
context.deploydir = os.path.join(str(tmpdir), 'deploy')
context.artifactdir = os.path.join(str(tmpdir), 'artifact')
- return context
-
-
-@pytest.fixture()
-def artifactcache(context):
- return ArtifactCache(context)
+ return Pipeline(context, project, "simple.bst", None)
-def test_empty_contains(context, artifactcache):
- assert(not artifactcache.contains('foo', 'bar', 'a1b2c3'))
+def test_empty_contains(pipeline):
+ assert(not pipeline.artifacts.contains(pipeline.target))
-@pytest.mark.xfail()
-def test_empty_extract(context, artifactcache):
- artifactcache.extract('foo', 'bar', 'a1b2c3')
+# Test that we get an ArtifactError when trying to extract a nonexistent artifact
+def test_empty_extract(pipeline):
+ with pytest.raises(ArtifactError) as exc:
+ pipeline.artifacts.extract(pipeline.target)
-def test_commit_extract(context, artifactcache):
- os.makedirs(context.deploydir, exist_ok=True)
- with tempfile.TemporaryDirectory(dir=context.deploydir) as deploydir:
+def test_commit_extract(pipeline):
+ os.makedirs(pipeline.context.deploydir, exist_ok=True)
+ with tempfile.TemporaryDirectory(dir=pipeline.context.deploydir) as deploydir:
# create file as mock build output
bindir = os.path.join(deploydir, 'bin')
os.mkdir(bindir)
@@ -41,12 +43,12 @@ def test_commit_extract(context, artifactcache):
f.write('hello, world')
# commit build output to artifact cache
- artifactcache.commit('foo', 'bar', 'a1b2c3', deploydir)
+ pipeline.artifacts.commit(pipeline.target, deploydir)
- assert(artifactcache.contains('foo', 'bar', 'a1b2c3'))
+ assert(pipeline.artifacts.contains(pipeline.target))
# extract artifact and verify the content
- extractdir = artifactcache.extract('foo', 'bar', 'a1b2c3')
+ extractdir = pipeline.artifacts.extract(pipeline.target)
with open(os.path.join(extractdir, 'bin', 'baz'), 'r') as f:
content = f.read()
assert(content == 'hello, world')
diff --git a/tests/artifactcache/basics/project.conf b/tests/artifactcache/basics/project.conf
new file mode 100644
index 000000000..2027cc27a
--- /dev/null
+++ b/tests/artifactcache/basics/project.conf
@@ -0,0 +1,3 @@
+# Basic project configuration that doesnt override anything
+#
+name: pony
diff --git a/tests/artifactcache/basics/simple.bst b/tests/artifactcache/basics/simple.bst
new file mode 100644
index 000000000..cd1f73968
--- /dev/null
+++ b/tests/artifactcache/basics/simple.bst
@@ -0,0 +1,5 @@
+kind: autotools
+description: Some kinda autotools element
+config:
+ configure-commands:
+ - pony