diff options
author | Tristan Van Berkom <tristan.vanberkom@codethink.co.uk> | 2017-07-15 18:23:14 +0900 |
---|---|---|
committer | Tristan Van Berkom <tristan.vanberkom@codethink.co.uk> | 2017-07-17 22:54:58 +0900 |
commit | c8889b2fb24c276da01105306f07eb94e3504492 (patch) | |
tree | 548057854cd3f45ec4ea9c6ebc3e816c5f07b723 /tests/loader | |
parent | cb310c2716d242157e8bd19415553b0f398adda0 (diff) | |
download | buildstream-c8889b2fb24c276da01105306f07eb94e3504492.tar.gz |
variants.py tests: Added test cases to ensure LoadError() is raised for invalid variant requests
Diffstat (limited to 'tests/loader')
-rw-r--r-- | tests/loader/variants.py | 47 | ||||
-rw-r--r-- | tests/loader/variants/elements/simple-unused-variant-invalid.bst | 14 | ||||
-rw-r--r-- | tests/loader/variants/elements/simple-variant-invalid.bst | 5 |
3 files changed, 66 insertions, 0 deletions
diff --git a/tests/loader/variants.py b/tests/loader/variants.py index 865ffa268..e0afe1949 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 000000000..610bfaf76 --- /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 000000000..d8c2a40e7 --- /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 |