summaryrefslogtreecommitdiff
path: root/tests/sources/keytest.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/sources/keytest.py')
-rw-r--r--tests/sources/keytest.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/sources/keytest.py b/tests/sources/keytest.py
new file mode 100644
index 000000000..c01ea5b91
--- /dev/null
+++ b/tests/sources/keytest.py
@@ -0,0 +1,27 @@
+import os
+import pytest
+
+
+from buildstream._exceptions import ErrorDomain
+from buildstream.plugintestutils import cli
+
+
+DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)),
+ "project_key_test")
+
+
+# using the key-test plugin to ensure get_unique_key is never called before
+# refs are resolved
+@pytest.mark.datafiles(DATA_DIR)
+def test_generate_key(cli, datafiles):
+ project_dir = str(datafiles)
+
+ # check that we don't fail if not tracking due to get_unique_key
+ res = cli.run(project=project_dir, args=["build", "key-test.bst"])
+ res.assert_main_error(ErrorDomain.PIPELINE, "inconsistent-pipeline")
+
+ res = cli.run(project=project_dir, args=["source", "track", "key-test.bst"])
+ res.assert_success()
+
+ res = cli.run(project=project_dir, args=["build", "--track", "key-test.bst"])
+ res.assert_success()