diff options
| -rw-r--r-- | tests/loader/dependencies.py | 60 | ||||
| -rw-r--r-- | tests/loader/dependencies/elements/builddep.bst | 5 | ||||
| -rw-r--r-- | tests/loader/dependencies/elements/invaliddeptype.bst | 5 | ||||
| -rw-r--r-- | tests/loader/dependencies/elements/runtimedep.bst | 5 |
4 files changed, 75 insertions, 0 deletions
diff --git a/tests/loader/dependencies.py b/tests/loader/dependencies.py index e301e6057..8a88bcaf8 100644 --- a/tests/loader/dependencies.py +++ b/tests/loader/dependencies.py @@ -109,3 +109,63 @@ def test_circular_dependency(datafiles): element = loader.load() assert (exc.value.reason == LoadErrorReason.CIRCULAR_DEPENDENCY) + + +@pytest.mark.datafiles(DATA_DIR) +def test_invalid_dependency_type(datafiles): + basedir = os.path.join(datafiles.dirname, datafiles.basename) + loader = Loader(basedir, 'elements/invaliddeptype.bst', None, None) + + with pytest.raises(LoadError) as exc: + element = loader.load() + + assert (exc.value.reason == LoadErrorReason.INVALID_DATA) + + +@pytest.mark.datafiles(DATA_DIR) +def test_build_dependency(datafiles): + basedir = os.path.join(datafiles.dirname, datafiles.basename) + loader = Loader(basedir, 'elements/builddep.bst', None, None) + element = loader.load() + + assert(isinstance(element, MetaElement)) + assert(element.kind == 'pony') + + assert(len(element.build_dependencies) == 1) + firstdep = element.build_dependencies[0] + assert(isinstance(firstdep, MetaElement)) + + assert(len(element.dependencies) == 0) + + +@pytest.mark.datafiles(DATA_DIR) +def test_runtime_dependency(datafiles): + basedir = os.path.join(datafiles.dirname, datafiles.basename) + loader = Loader(basedir, 'elements/runtimedep.bst', None, None) + element = loader.load() + + assert(isinstance(element, MetaElement)) + assert(element.kind == 'pony') + + assert(len(element.dependencies) == 1) + firstdep = element.dependencies[0] + assert(isinstance(firstdep, MetaElement)) + + assert(len(element.build_dependencies) == 0) + + +@pytest.mark.datafiles(DATA_DIR) +def test_build_runtime_dependency(datafiles): + basedir = os.path.join(datafiles.dirname, datafiles.basename) + loader = Loader(basedir, 'elements/target.bst', None, None) + element = loader.load() + + assert(isinstance(element, MetaElement)) + assert(element.kind == 'pony') + + assert(len(element.dependencies) == 1) + assert(len(element.build_dependencies) == 1) + firstdep = element.dependencies[0] + assert(isinstance(firstdep, MetaElement)) + firstbuilddep = element.build_dependencies[0] + assert(firstdep == firstbuilddep) diff --git a/tests/loader/dependencies/elements/builddep.bst b/tests/loader/dependencies/elements/builddep.bst new file mode 100644 index 000000000..6d17f8498 --- /dev/null +++ b/tests/loader/dependencies/elements/builddep.bst @@ -0,0 +1,5 @@ +kind: pony +description: This element has a build-only dependency +depends: + - filename: elements/firstdep.bst + type: build diff --git a/tests/loader/dependencies/elements/invaliddeptype.bst b/tests/loader/dependencies/elements/invaliddeptype.bst new file mode 100644 index 000000000..50ed798f0 --- /dev/null +++ b/tests/loader/dependencies/elements/invaliddeptype.bst @@ -0,0 +1,5 @@ +kind: pony +description: This is an invalid dependency type +depends: + - filename: elements/firstdep.bst + type: should be build or runtime diff --git a/tests/loader/dependencies/elements/runtimedep.bst b/tests/loader/dependencies/elements/runtimedep.bst new file mode 100644 index 000000000..a08b59ebf --- /dev/null +++ b/tests/loader/dependencies/elements/runtimedep.bst @@ -0,0 +1,5 @@ +kind: pony +description: This element has a runtime-only dependency +depends: + - filename: elements/firstdep.bst + type: runtime |
