summaryrefslogtreecommitdiff
path: root/tests/format/stack.py
diff options
context:
space:
mode:
authorTristan van Berkom <tristan@codethink.co.uk>2020-12-08 17:42:38 +0900
committerTristan van Berkom <tristan@codethink.co.uk>2020-12-10 21:40:20 +0900
commit091c9c8555f37b2ac50c0c696bb367fb992cb899 (patch)
tree23cb74a92638ec18677313d1f8735dc8426ab853 /tests/format/stack.py
parent0b94cd15c725f1cbf1b8fc4bca17374396e1a299 (diff)
downloadbuildstream-tristan/stack-require-depends-all.tar.gz
tests/format/stack.py: Test stack dependency typestristan/stack-require-depends-all
Assert that errors are raised when stack dependencies are declared as build-only or runtime-only dependencies.
Diffstat (limited to 'tests/format/stack.py')
-rw-r--r--tests/format/stack.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/format/stack.py b/tests/format/stack.py
new file mode 100644
index 000000000..b014e9b5d
--- /dev/null
+++ b/tests/format/stack.py
@@ -0,0 +1,22 @@
+# Pylint doesn't play well with fixtures and dependency injection from pytest
+# pylint: disable=redefined-outer-name
+
+import os
+import pytest
+
+from buildstream.exceptions import ErrorDomain
+from buildstream.testing import cli # pylint: disable=unused-import
+
+DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "stack")
+
+
+#
+# Assert that we have errors when trying to have runtime-only or
+# build-only dependencies.
+#
+@pytest.mark.datafiles(DATA_DIR)
+@pytest.mark.parametrize("target", ["build-only-stack.bst", "runtime-only-stack.bst",])
+def test_require_build_and_run(cli, datafiles, target):
+ project = str(datafiles)
+ result = cli.run(project=project, args=["show", target])
+ result.assert_main_error(ErrorDomain.ELEMENT, "stack-requires-build-and-run")