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-15 20:12:11 +0900 |
commit | ce389ed957045b300600786dd77e4d8a62ff157b (patch) | |
tree | c6d06eb40abf23d6e77eb472e44708c14cc034c9 | |
parent | 97e66e23b1d266f9ee1354a05e60247a4578c984 (diff) | |
download | buildstream-ce389ed957045b300600786dd77e4d8a62ff157b.tar.gz |
variants.py tests: Added test cases to ensure LoadError() is raised for invalid variant requests
-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 |