diff options
author | Tristan Van Berkom <tristan.vanberkom@codethink.co.uk> | 2019-01-11 17:52:31 -0500 |
---|---|---|
committer | Tristan Van Berkom <tristan.vanberkom@codethink.co.uk> | 2019-01-16 18:35:21 -0500 |
commit | 8d676a84f7410ba337be3e3cd8d24d7255cefee7 (patch) | |
tree | 2e0cfa823b3dbd1a5b0aff032ad2462dd31d9cdd | |
parent | f712aaa552e11834d0c156661309e78b8747a81c (diff) | |
download | buildstream-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.py | 133 | ||||
-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.bst | 5 | ||||
-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.conf | 3 | ||||
-rw-r--r-- | tests/loader/__init__.py | 22 | ||||
-rw-r--r-- | tests/loader/dependencies.py | 236 | ||||
-rw-r--r-- | tests/loader/dependencies/elements/shareddeptarget.bst | 5 | ||||
-rw-r--r-- | tests/loader/dependencies/project.conf | 2 |
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 |