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