summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/loader/dependencies.py60
-rw-r--r--tests/loader/dependencies/elements/builddep.bst5
-rw-r--r--tests/loader/dependencies/elements/invaliddeptype.bst5
-rw-r--r--tests/loader/dependencies/elements/runtimedep.bst5
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