You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildstream.apache.org by ro...@apache.org on 2020/12/29 13:38:15 UTC

[buildstream] 09/14: variants.py tests: Added test cases to ensure LoadError() is raised for invalid variant requests

This is an automated email from the ASF dual-hosted git repository.

root pushed a commit to branch variants-slow-functional-loopy
in repository https://gitbox.apache.org/repos/asf/buildstream.git

commit ce389ed957045b300600786dd77e4d8a62ff157b
Author: Tristan Van Berkom <tr...@codethink.co.uk>
AuthorDate: Sat Jul 15 18:23:14 2017 +0900

    variants.py tests: Added test cases to ensure LoadError() is raised for invalid variant requests
---
 tests/loader/variants.py                           | 47 ++++++++++++++++++++++
 .../elements/simple-unused-variant-invalid.bst     | 14 +++++++
 .../variants/elements/simple-variant-invalid.bst   |  5 +++
 3 files changed, 66 insertions(+)

diff --git a/tests/loader/variants.py b/tests/loader/variants.py
index 865ffa2..e0afe19 100644
--- a/tests/loader/variants.py
+++ b/tests/loader/variants.py
@@ -76,6 +76,53 @@ def test_variant_illegal_composite(datafiles):
 
 
 ##############################################################
+#                Test Invalid Variant Requests               #
+##############################################################
+@pytest.mark.datafiles(DATA_DIR)
+def test_variant_invalid_target(datafiles):
+
+    # Test that an invalid variant requested as the pipeline target raises the appropriate error
+    basedir = os.path.join(datafiles.dirname, datafiles.basename)
+    loader = Loader(
+        basedir, 'elements/simple-variant-compositing.bst', 'green', None, None)
+
+    with pytest.raises(LoadError) as exc:
+        element = loader.load()
+
+    assert (exc.value.reason == LoadErrorReason.INVALID_VARIANT)
+
+
+@pytest.mark.datafiles(DATA_DIR)
+def test_variant_invalid_dependency(datafiles):
+
+    # Test that an invalid variant requested as an element dependency raises the appropriate error
+    basedir = os.path.join(datafiles.dirname, datafiles.basename)
+    loader = Loader(
+        basedir, 'elements/simple-variant-invalid.bst', None, None, None)
+
+    with pytest.raises(LoadError) as exc:
+        element = loader.load()
+
+    assert (exc.value.reason == LoadErrorReason.INVALID_VARIANT)
+
+
+@pytest.mark.datafiles(DATA_DIR)
+def test_variant_invalid_unused_dependency(datafiles):
+
+    # Test that an invalid variant requested as an element dependency which is
+    # unused in the effective variant resolution still raises the appropriate
+    # error (ensure that errors occur even on unused variant paths)
+    basedir = os.path.join(datafiles.dirname, datafiles.basename)
+    loader = Loader(
+        basedir, 'elements/simple-unused-variant-invalid.bst', 'blue', None, None)
+
+    with pytest.raises(LoadError) as exc:
+        element = loader.load()
+
+    assert (exc.value.reason == LoadErrorReason.INVALID_VARIANT)
+
+
+##############################################################
 #                Test Simple Variant Compositing             #
 ##############################################################
 @pytest.mark.datafiles(DATA_DIR)
diff --git a/tests/loader/variants/elements/simple-unused-variant-invalid.bst b/tests/loader/variants/elements/simple-unused-variant-invalid.bst
new file mode 100644
index 0000000..610bfaf
--- /dev/null
+++ b/tests/loader/variants/elements/simple-unused-variant-invalid.bst
@@ -0,0 +1,14 @@
+kind: pony
+description: An element which depends on an invalid variant of a dependency
+variants:
+- variant: pink
+  config:
+    pony-color: pink
+  depends:
+  - filename: elements/simply-pink.bst
+    variant: green
+- variant: blue
+  config:
+    pony-color: blue
+  depends:
+  - elements/simply-blue.bst
diff --git a/tests/loader/variants/elements/simple-variant-invalid.bst b/tests/loader/variants/elements/simple-variant-invalid.bst
new file mode 100644
index 0000000..d8c2a40
--- /dev/null
+++ b/tests/loader/variants/elements/simple-variant-invalid.bst
@@ -0,0 +1,5 @@
+kind: pony
+description: An element which depends on an invalid variant of a dependency
+depends:
+- filename: elements/simple-variant-compositing.bst
+  variant: green