summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan Van Berkom <tristan.vanberkom@codethink.co.uk>2019-01-11 17:52:31 -0500
committerTristan Van Berkom <tristan.vanberkom@codethink.co.uk>2019-01-16 18:35:21 -0500
commit8d676a84f7410ba337be3e3cd8d24d7255cefee7 (patch)
tree2e0cfa823b3dbd1a5b0aff032ad2462dd31d9cdd
parentf712aaa552e11834d0c156661309e78b8747a81c (diff)
downloadbuildstream-8d676a84f7410ba337be3e3cd8d24d7255cefee7.tar.gz
tests: Migrate dependencies test to tests/format
This used to be an internal test, converted this to use the `cli` fixture.
-rw-r--r--tests/format/dependencies.py133
-rw-r--r--tests/format/dependencies/elements/alldep.bst (renamed from tests/loader/dependencies/elements/alldep.bst)4
-rw-r--r--tests/format/dependencies/elements/builddep-list.bst (renamed from tests/loader/dependencies/elements/builddep-list.bst)2
-rw-r--r--tests/format/dependencies/elements/builddep.bst (renamed from tests/loader/dependencies/elements/builddep.bst)4
-rw-r--r--tests/format/dependencies/elements/circular-firstdep.bst (renamed from tests/loader/dependencies/elements/circular-firstdep.bst)4
-rw-r--r--tests/format/dependencies/elements/circular-seconddep.bst (renamed from tests/loader/dependencies/elements/circular-seconddep.bst)4
-rw-r--r--tests/format/dependencies/elements/circulartarget.bst (renamed from tests/loader/dependencies/elements/circulartarget.bst)4
-rw-r--r--tests/format/dependencies/elements/firstdep.bst (renamed from tests/loader/dependencies/elements/firstdep.bst)0
-rw-r--r--tests/format/dependencies/elements/invaliddep.bst (renamed from tests/loader/dependencies/elements/invaliddep.bst)0
-rw-r--r--tests/format/dependencies/elements/invaliddeptype.bst (renamed from tests/loader/dependencies/elements/invaliddeptype.bst)4
-rw-r--r--tests/format/dependencies/elements/list-combine.bst (renamed from tests/loader/dependencies/elements/list-combine.bst)6
-rw-r--r--tests/format/dependencies/elements/list-overlap.bst (renamed from tests/loader/dependencies/elements/list-overlap.bst)4
-rw-r--r--tests/format/dependencies/elements/runtimedep-list.bst (renamed from tests/loader/dependencies/elements/runtimedep-list.bst)2
-rw-r--r--tests/format/dependencies/elements/runtimedep.bst (renamed from tests/loader/dependencies/elements/runtimedep.bst)4
-rw-r--r--tests/format/dependencies/elements/seconddep.bst (renamed from tests/loader/dependencies/elements/seconddep.bst)0
-rw-r--r--tests/format/dependencies/elements/shareddep.bst (renamed from tests/loader/dependencies/elements/shareddep.bst)4
-rw-r--r--tests/format/dependencies/elements/shareddeptarget.bst5
-rw-r--r--tests/format/dependencies/elements/target-depdict.bst (renamed from tests/loader/dependencies/elements/target-depdict.bst)4
-rw-r--r--tests/format/dependencies/elements/target.bst (renamed from tests/loader/dependencies/elements/target.bst)4
-rw-r--r--tests/format/dependencies/elements/thirddep.bst (renamed from tests/loader/dependencies/elements/thirddep.bst)0
-rw-r--r--tests/format/dependencies/project.conf3
-rw-r--r--tests/loader/__init__.py22
-rw-r--r--tests/loader/dependencies.py236
-rw-r--r--tests/loader/dependencies/elements/shareddeptarget.bst5
-rw-r--r--tests/loader/dependencies/project.conf2
25 files changed, 168 insertions, 292 deletions
diff --git a/tests/format/dependencies.py b/tests/format/dependencies.py
new file mode 100644
index 000000000..bcfa2929a
--- /dev/null
+++ b/tests/format/dependencies.py
@@ -0,0 +1,133 @@
+import os
+import pytest
+
+from buildstream._exceptions import ErrorDomain, LoadErrorReason
+from tests.testutils import cli
+
+DATA_DIR = os.path.join(
+ os.path.dirname(os.path.realpath(__file__)),
+ 'dependencies',
+)
+
+
+@pytest.mark.datafiles(DATA_DIR)
+def test_two_files(cli, datafiles):
+ project = str(datafiles)
+
+ elements = cli.get_pipeline(project, ['target.bst'])
+ assert elements == ['firstdep.bst', 'target.bst']
+
+
+@pytest.mark.datafiles(DATA_DIR)
+def test_shared_dependency(cli, datafiles):
+ project = str(datafiles)
+
+ elements = cli.get_pipeline(project, ['shareddeptarget.bst'])
+ assert elements == ['firstdep.bst', 'shareddep.bst', 'shareddeptarget.bst']
+
+
+@pytest.mark.datafiles(DATA_DIR)
+def test_dependency_dict(cli, datafiles):
+ project = str(datafiles)
+ elements = cli.get_pipeline(project, ['target-depdict.bst'])
+ assert elements == ['firstdep.bst', 'target-depdict.bst']
+
+
+@pytest.mark.datafiles(DATA_DIR)
+def test_invalid_dependency_declaration(cli, datafiles):
+ project = str(datafiles)
+ result = cli.run(project=project, args=['show', 'invaliddep.bst'])
+ result.assert_main_error(ErrorDomain.LOAD, LoadErrorReason.INVALID_DATA)
+
+
+@pytest.mark.datafiles(DATA_DIR)
+def test_invalid_dependency_type(cli, datafiles):
+ project = str(datafiles)
+ result = cli.run(project=project, args=['show', 'invaliddeptype.bst'])
+ result.assert_main_error(ErrorDomain.LOAD, LoadErrorReason.INVALID_DATA)
+
+
+@pytest.mark.datafiles(DATA_DIR)
+def test_circular_dependency(cli, datafiles):
+ project = str(datafiles)
+ result = cli.run(project=project, args=['show', 'circulartarget.bst'])
+ result.assert_main_error(ErrorDomain.LOAD, LoadErrorReason.CIRCULAR_DEPENDENCY)
+
+
+@pytest.mark.datafiles(DATA_DIR)
+def test_build_dependency(cli, datafiles):
+ project = str(datafiles)
+
+ elements = cli.get_pipeline(project, ['builddep.bst'], scope='run')
+ assert elements == ['builddep.bst']
+
+ elements = cli.get_pipeline(project, ['builddep.bst'], scope='build')
+ assert elements == ['firstdep.bst']
+
+
+@pytest.mark.datafiles(DATA_DIR)
+def test_runtime_dependency(cli, datafiles):
+ project = str(datafiles)
+ elements = cli.get_pipeline(project, ['runtimedep.bst'], scope='build')
+
+ # FIXME: The empty line should probably never happen here when there are no results.
+ assert elements == ['']
+ elements = cli.get_pipeline(project, ['runtimedep.bst'], scope='run')
+ assert elements == ['firstdep.bst', 'runtimedep.bst']
+
+
+@pytest.mark.datafiles(DATA_DIR)
+def test_all_dependency(cli, datafiles):
+ project = str(datafiles)
+
+ elements = cli.get_pipeline(project, ['alldep.bst'], scope='build')
+ assert elements == ['firstdep.bst']
+
+ elements = cli.get_pipeline(project, ['alldep.bst'], scope='run')
+ assert elements == ['firstdep.bst', 'alldep.bst']
+
+
+@pytest.mark.datafiles(DATA_DIR)
+def test_list_build_dependency(cli, datafiles):
+ project = str(datafiles)
+
+ # Check that the pipeline includes the build dependency
+ deps = cli.get_pipeline(project, ['builddep-list.bst'], scope="build")
+ assert "firstdep.bst" in deps
+
+
+@pytest.mark.datafiles(DATA_DIR)
+def test_list_runtime_dependency(cli, datafiles):
+ project = str(datafiles)
+
+ # Check that the pipeline includes the runtime dependency
+ deps = cli.get_pipeline(project, ['runtimedep-list.bst'], scope="run")
+ assert "firstdep.bst" in deps
+
+
+@pytest.mark.datafiles(DATA_DIR)
+def test_list_dependencies_combined(cli, datafiles):
+ project = str(datafiles)
+
+ # Check that runtime deps get combined
+ rundeps = cli.get_pipeline(project, ['list-combine.bst'], scope="run")
+ assert "firstdep.bst" not in rundeps
+ assert "seconddep.bst" in rundeps
+ assert "thirddep.bst" in rundeps
+
+ # Check that build deps get combined
+ builddeps = cli.get_pipeline(project, ['list-combine.bst'], scope="build")
+ assert "firstdep.bst" in builddeps
+ assert "seconddep.bst" not in builddeps
+ assert "thirddep.bst" in builddeps
+
+
+@pytest.mark.datafiles(DATA_DIR)
+def test_list_overlap(cli, datafiles):
+ project = str(datafiles)
+
+ # Check that dependencies get merged
+ rundeps = cli.get_pipeline(project, ['list-overlap.bst'], scope="run")
+ assert "firstdep.bst" in rundeps
+ builddeps = cli.get_pipeline(project, ['list-overlap.bst'], scope="build")
+ assert "firstdep.bst" in builddeps
diff --git a/tests/loader/dependencies/elements/alldep.bst b/tests/format/dependencies/elements/alldep.bst
index c61c7ea15..7df79c92d 100644
--- a/tests/loader/dependencies/elements/alldep.bst
+++ b/tests/format/dependencies/elements/alldep.bst
@@ -1,5 +1,5 @@
-kind: pony
+kind: manual
description: This element has a dependency with type 'all'
depends:
- - filename: elements/firstdep.bst
+ - filename: firstdep.bst
type: all
diff --git a/tests/loader/dependencies/elements/builddep-list.bst b/tests/format/dependencies/elements/builddep-list.bst
index 925de3afd..a0cbcaf23 100644
--- a/tests/loader/dependencies/elements/builddep-list.bst
+++ b/tests/format/dependencies/elements/builddep-list.bst
@@ -1,4 +1,4 @@
kind: stack
description: This element has a build-only dependency specified via build-depends
build-depends:
- - elements/firstdep.bst
+ - firstdep.bst
diff --git a/tests/loader/dependencies/elements/builddep.bst b/tests/format/dependencies/elements/builddep.bst
index 6d17f8498..ab8171e2c 100644
--- a/tests/loader/dependencies/elements/builddep.bst
+++ b/tests/format/dependencies/elements/builddep.bst
@@ -1,5 +1,5 @@
-kind: pony
+kind: manual
description: This element has a build-only dependency
depends:
- - filename: elements/firstdep.bst
+ - filename: firstdep.bst
type: build
diff --git a/tests/loader/dependencies/elements/circular-firstdep.bst b/tests/format/dependencies/elements/circular-firstdep.bst
index 92f6993a2..604212042 100644
--- a/tests/loader/dependencies/elements/circular-firstdep.bst
+++ b/tests/format/dependencies/elements/circular-firstdep.bst
@@ -1,4 +1,4 @@
-kind: pony
+kind: manual
description: Depend on another dep which depends on the target
depends:
-- elements/circular-seconddep.bst
+- circular-seconddep.bst
diff --git a/tests/loader/dependencies/elements/circular-seconddep.bst b/tests/format/dependencies/elements/circular-seconddep.bst
index 12a67ba75..1b944c912 100644
--- a/tests/loader/dependencies/elements/circular-seconddep.bst
+++ b/tests/format/dependencies/elements/circular-seconddep.bst
@@ -1,4 +1,4 @@
-kind: pony
+kind: manual
description: Depend on the target, creating a circular dependency
depends:
-- elements/circulartarget.bst
+- circulartarget.bst
diff --git a/tests/loader/dependencies/elements/circulartarget.bst b/tests/format/dependencies/elements/circulartarget.bst
index 14db24682..eac50469c 100644
--- a/tests/loader/dependencies/elements/circulartarget.bst
+++ b/tests/format/dependencies/elements/circulartarget.bst
@@ -1,4 +1,4 @@
-kind: pony
+kind: stack
description: This is a main target which introduces a circular dependency
depends:
-- elements/circular-firstdep.bst
+- circular-firstdep.bst
diff --git a/tests/loader/dependencies/elements/firstdep.bst b/tests/format/dependencies/elements/firstdep.bst
index 5c9c1c1e6..5c9c1c1e6 100644
--- a/tests/loader/dependencies/elements/firstdep.bst
+++ b/tests/format/dependencies/elements/firstdep.bst
diff --git a/tests/loader/dependencies/elements/invaliddep.bst b/tests/format/dependencies/elements/invaliddep.bst
index 65c43c60a..65c43c60a 100644
--- a/tests/loader/dependencies/elements/invaliddep.bst
+++ b/tests/format/dependencies/elements/invaliddep.bst
diff --git a/tests/loader/dependencies/elements/invaliddeptype.bst b/tests/format/dependencies/elements/invaliddeptype.bst
index 50ed798f0..4f4dac973 100644
--- a/tests/loader/dependencies/elements/invaliddeptype.bst
+++ b/tests/format/dependencies/elements/invaliddeptype.bst
@@ -1,5 +1,5 @@
-kind: pony
+kind: manual
description: This is an invalid dependency type
depends:
- - filename: elements/firstdep.bst
+ - filename: firstdep.bst
type: should be build or runtime
diff --git a/tests/loader/dependencies/elements/list-combine.bst b/tests/format/dependencies/elements/list-combine.bst
index 2010d7008..ed3452206 100644
--- a/tests/loader/dependencies/elements/list-combine.bst
+++ b/tests/format/dependencies/elements/list-combine.bst
@@ -1,8 +1,8 @@
kind: stack
description: This element depends on three elements in different ways
build-depends:
-- elements/firstdep.bst
+- firstdep.bst
runtime-depends:
-- elements/seconddep.bst
+- seconddep.bst
depends:
-- elements/thirddep.bst
+- thirddep.bst
diff --git a/tests/loader/dependencies/elements/list-overlap.bst b/tests/format/dependencies/elements/list-overlap.bst
index 1e98a20a5..0ee94f11c 100644
--- a/tests/loader/dependencies/elements/list-overlap.bst
+++ b/tests/format/dependencies/elements/list-overlap.bst
@@ -1,7 +1,7 @@
kind: stack
description: This element depends on two elements in different ways
build-depends:
-- elements/firstdep.bst
+- firstdep.bst
depends:
-- filename: elements/firstdep.bst
+- filename: firstdep.bst
type: runtime
diff --git a/tests/loader/dependencies/elements/runtimedep-list.bst b/tests/format/dependencies/elements/runtimedep-list.bst
index 790fa4d54..1207a492d 100644
--- a/tests/loader/dependencies/elements/runtimedep-list.bst
+++ b/tests/format/dependencies/elements/runtimedep-list.bst
@@ -1,4 +1,4 @@
kind: stack
description: This element has a runtime-only dependency
runtime-depends:
- - elements/firstdep.bst
+ - firstdep.bst
diff --git a/tests/loader/dependencies/elements/runtimedep.bst b/tests/format/dependencies/elements/runtimedep.bst
index a08b59ebf..6a5247117 100644
--- a/tests/loader/dependencies/elements/runtimedep.bst
+++ b/tests/format/dependencies/elements/runtimedep.bst
@@ -1,5 +1,5 @@
-kind: pony
+kind: manual
description: This element has a runtime-only dependency
depends:
- - filename: elements/firstdep.bst
+ - filename: firstdep.bst
type: runtime
diff --git a/tests/loader/dependencies/elements/seconddep.bst b/tests/format/dependencies/elements/seconddep.bst
index 93ded4359..93ded4359 100644
--- a/tests/loader/dependencies/elements/seconddep.bst
+++ b/tests/format/dependencies/elements/seconddep.bst
diff --git a/tests/loader/dependencies/elements/shareddep.bst b/tests/format/dependencies/elements/shareddep.bst
index cb98171f6..ac123e253 100644
--- a/tests/loader/dependencies/elements/shareddep.bst
+++ b/tests/format/dependencies/elements/shareddep.bst
@@ -1,4 +1,4 @@
-kind: shareddep
+kind: stack
description: This is the first dependency
depends:
-- elements/firstdep.bst
+- firstdep.bst
diff --git a/tests/format/dependencies/elements/shareddeptarget.bst b/tests/format/dependencies/elements/shareddeptarget.bst
new file mode 100644
index 000000000..b6efb1306
--- /dev/null
+++ b/tests/format/dependencies/elements/shareddeptarget.bst
@@ -0,0 +1,5 @@
+kind: stack
+description: This is the main target
+depends:
+- firstdep.bst
+- shareddep.bst
diff --git a/tests/loader/dependencies/elements/target-depdict.bst b/tests/format/dependencies/elements/target-depdict.bst
index 22bc87910..6a150753c 100644
--- a/tests/loader/dependencies/elements/target-depdict.bst
+++ b/tests/format/dependencies/elements/target-depdict.bst
@@ -1,4 +1,4 @@
-kind: pony
+kind: manual
description: This is the main target
depends:
-- filename: elements/firstdep.bst
+- filename: firstdep.bst
diff --git a/tests/loader/dependencies/elements/target.bst b/tests/format/dependencies/elements/target.bst
index 05c767956..b856b0f93 100644
--- a/tests/loader/dependencies/elements/target.bst
+++ b/tests/format/dependencies/elements/target.bst
@@ -1,4 +1,4 @@
-kind: pony
+kind: stack
description: This is the main target
depends:
-- elements/firstdep.bst
+- firstdep.bst
diff --git a/tests/loader/dependencies/elements/thirddep.bst b/tests/format/dependencies/elements/thirddep.bst
index 39b58e57a..39b58e57a 100644
--- a/tests/loader/dependencies/elements/thirddep.bst
+++ b/tests/format/dependencies/elements/thirddep.bst
diff --git a/tests/format/dependencies/project.conf b/tests/format/dependencies/project.conf
new file mode 100644
index 000000000..fcd60b6df
--- /dev/null
+++ b/tests/format/dependencies/project.conf
@@ -0,0 +1,3 @@
+# Basic project
+name: test
+element-path: elements
diff --git a/tests/loader/__init__.py b/tests/loader/__init__.py
deleted file mode 100644
index 812888181..000000000
--- a/tests/loader/__init__.py
+++ /dev/null
@@ -1,22 +0,0 @@
-import os
-from buildstream._context import Context
-from buildstream._project import Project
-from buildstream._loader import Loader
-
-#
-# This is used by the loader test modules, these should
-# be removed in favor of testing the functionality via
-# the CLI like in the frontend tests anyway.
-#
-
-
-def dummy_handler(message, context):
- pass
-
-
-def make_loader(basedir):
- context = Context()
- context.load(config=os.devnull)
- context.set_message_handler(dummy_handler)
- project = Project(basedir, context)
- return project.loader
diff --git a/tests/loader/dependencies.py b/tests/loader/dependencies.py
deleted file mode 100644
index 98374f6d0..000000000
--- a/tests/loader/dependencies.py
+++ /dev/null
@@ -1,236 +0,0 @@
-import os
-import pytest
-
-from buildstream._exceptions import LoadError, LoadErrorReason
-from buildstream._loader import Loader, MetaElement
-from tests.testutils import cli
-from . import make_loader
-
-DATA_DIR = os.path.join(
- os.path.dirname(os.path.realpath(__file__)),
- 'dependencies',
-)
-
-
-##############################################################
-# Basics: Test behavior loading projects with dependencies #
-##############################################################
-@pytest.mark.datafiles(DATA_DIR)
-def test_two_files(datafiles):
-
- basedir = os.path.join(datafiles.dirname, datafiles.basename)
- loader = make_loader(basedir)
- element = loader.load(['elements/target.bst'])[0]
-
- assert(isinstance(element, MetaElement))
- assert(element.kind == 'pony')
-
- assert(len(element.dependencies) == 1)
- firstdep = element.dependencies[0]
- assert(isinstance(firstdep, MetaElement))
- assert(firstdep.kind == 'manual')
-
-
-@pytest.mark.datafiles(DATA_DIR)
-def test_shared_dependency(datafiles):
-
- basedir = os.path.join(datafiles.dirname, datafiles.basename)
- loader = make_loader(basedir)
- element = loader.load(['elements/shareddeptarget.bst'])[0]
-
- # Toplevel is 'pony' with 2 dependencies
- #
- assert(isinstance(element, MetaElement))
- assert(element.kind == 'pony')
- assert(len(element.dependencies) == 2)
-
- # The first specified dependency is 'thefirstdep'
- #
- firstdep = element.dependencies[0]
- assert(isinstance(firstdep, MetaElement))
- assert(firstdep.kind == 'manual')
- assert(len(firstdep.dependencies) == 0)
-
- # The second specified dependency is 'shareddep'
- #
- shareddep = element.dependencies[1]
- assert(isinstance(shareddep, MetaElement))
- assert(shareddep.kind == 'shareddep')
- assert(len(shareddep.dependencies) == 1)
-
- # The element which shareddep depends on is
- # the same element in memory as firstdep
- #
- shareddepdep = shareddep.dependencies[0]
- assert(isinstance(shareddepdep, MetaElement))
-
- # Assert they are in fact the same LoadElement
- #
- # Note we must use 'is' to test that both variables
- # refer to the same object in memory, not a regular
- # equality test with '==' which is one of those operator
- # overridable thingies.
- #
- assert(shareddepdep is firstdep)
-
-
-@pytest.mark.datafiles(DATA_DIR)
-def test_dependency_dict(datafiles):
-
- basedir = os.path.join(datafiles.dirname, datafiles.basename)
- loader = make_loader(basedir)
- element = loader.load(['elements/target-depdict.bst'])[0]
-
- assert(isinstance(element, MetaElement))
- assert(element.kind == 'pony')
-
- assert(len(element.dependencies) == 1)
- firstdep = element.dependencies[0]
- assert(isinstance(firstdep, MetaElement))
- assert(firstdep.kind == 'manual')
-
-
-@pytest.mark.datafiles(DATA_DIR)
-def test_invalid_dependency_declaration(datafiles):
- basedir = os.path.join(datafiles.dirname, datafiles.basename)
- loader = make_loader(basedir)
-
- with pytest.raises(LoadError) as exc:
- element = loader.load(['elements/invaliddep.bst'])[0]
-
- assert (exc.value.reason == LoadErrorReason.INVALID_DATA)
-
-
-@pytest.mark.datafiles(DATA_DIR)
-def test_circular_dependency(datafiles):
- basedir = os.path.join(datafiles.dirname, datafiles.basename)
- loader = make_loader(basedir)
-
- with pytest.raises(LoadError) as exc:
- element = loader.load(['elements/circulartarget.bst'])[0]
-
- assert (exc.value.reason == LoadErrorReason.CIRCULAR_DEPENDENCY)
- assert ("seconddep" in exc.value.args[0])
-
-
-@pytest.mark.datafiles(DATA_DIR)
-def test_invalid_dependency_type(datafiles):
- basedir = os.path.join(datafiles.dirname, datafiles.basename)
- loader = make_loader(basedir)
-
- with pytest.raises(LoadError) as exc:
- element = loader.load(['elements/invaliddeptype.bst'])[0]
-
- 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 = make_loader(basedir)
- element = loader.load(['elements/builddep.bst'])[0]
-
- 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 = make_loader(basedir)
- element = loader.load(['elements/runtimedep.bst'])[0]
-
- 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 = make_loader(basedir)
- element = loader.load(['elements/target.bst'])[0]
-
- 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)
-
-
-@pytest.mark.datafiles(DATA_DIR)
-def test_all_dependency(datafiles):
- basedir = os.path.join(datafiles.dirname, datafiles.basename)
- loader = make_loader(basedir)
- element = loader.load(['elements/alldep.bst'])[0]
-
- 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)
-
-
-@pytest.mark.datafiles(DATA_DIR)
-def test_list_build_dependency(cli, datafiles):
- project = str(datafiles)
-
- # Check that the pipeline includes the build dependency
- deps = cli.get_pipeline(project, ['elements/builddep-list.bst'], scope="build")
- assert "elements/firstdep.bst" in deps
-
-
-@pytest.mark.datafiles(DATA_DIR)
-def test_list_runtime_dependency(cli, datafiles):
- project = str(datafiles)
-
- # Check that the pipeline includes the runtime dependency
- deps = cli.get_pipeline(project, ['elements/runtimedep-list.bst'], scope="run")
- assert "elements/firstdep.bst" in deps
-
-
-@pytest.mark.datafiles(DATA_DIR)
-def test_list_dependencies_combined(cli, datafiles):
- project = str(datafiles)
-
- # Check that runtime deps get combined
- rundeps = cli.get_pipeline(project, ['elements/list-combine.bst'], scope="run")
- assert "elements/firstdep.bst" not in rundeps
- assert "elements/seconddep.bst" in rundeps
- assert "elements/thirddep.bst" in rundeps
-
- # Check that build deps get combined
- builddeps = cli.get_pipeline(project, ['elements/list-combine.bst'], scope="build")
- assert "elements/firstdep.bst" in builddeps
- assert "elements/seconddep.bst" not in builddeps
- assert "elements/thirddep.bst" in builddeps
-
-
-@pytest.mark.datafiles(DATA_DIR)
-def test_list_overlap(cli, datafiles):
- project = str(datafiles)
-
- # Check that dependencies get merged
- rundeps = cli.get_pipeline(project, ['elements/list-overlap.bst'], scope="run")
- assert "elements/firstdep.bst" in rundeps
- builddeps = cli.get_pipeline(project, ['elements/list-overlap.bst'], scope="build")
- assert "elements/firstdep.bst" in builddeps
diff --git a/tests/loader/dependencies/elements/shareddeptarget.bst b/tests/loader/dependencies/elements/shareddeptarget.bst
deleted file mode 100644
index 03982d69f..000000000
--- a/tests/loader/dependencies/elements/shareddeptarget.bst
+++ /dev/null
@@ -1,5 +0,0 @@
-kind: pony
-description: This is the main target
-depends:
-- elements/firstdep.bst
-- elements/shareddep.bst
diff --git a/tests/loader/dependencies/project.conf b/tests/loader/dependencies/project.conf
deleted file mode 100644
index afa0f5475..000000000
--- a/tests/loader/dependencies/project.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-# Basic project
-name: foo