diff options
Diffstat (limited to 'src/buildstream/testing/_sourcetests/build_checkout.py')
-rw-r--r-- | src/buildstream/testing/_sourcetests/build_checkout.py | 64 |
1 files changed, 29 insertions, 35 deletions
diff --git a/src/buildstream/testing/_sourcetests/build_checkout.py b/src/buildstream/testing/_sourcetests/build_checkout.py index 782d99814..8209fceff 100644 --- a/src/buildstream/testing/_sourcetests/build_checkout.py +++ b/src/buildstream/testing/_sourcetests/build_checkout.py @@ -22,14 +22,8 @@ import os import pytest -from buildstream.testing import create_repo -from buildstream.testing import cli # pylint: disable=unused-import from buildstream import _yaml -from .utils import kind # pylint: disable=unused-import - -# Project directory -TOP_DIR = os.path.dirname(os.path.realpath(__file__)) -DATA_DIR = os.path.join(TOP_DIR, "project") +from .base import BaseSourceTests def strict_args(args, strict): @@ -38,36 +32,36 @@ def strict_args(args, strict): return args -@pytest.mark.datafiles(DATA_DIR) -@pytest.mark.parametrize("strict", ["strict", "non-strict"]) -def test_fetch_build_checkout(cli, tmpdir, datafiles, strict, kind): - checkout = os.path.join(cli.directory, "checkout") - project = str(datafiles) - dev_files_path = os.path.join(project, "files", "dev-files") - element_path = os.path.join(project, "elements") - element_name = "build-test-{}.bst".format(kind) +class BuildCheckoutSourceTests(BaseSourceTests): + @pytest.mark.parametrize("strict", ["strict", "non-strict"]) + def test_fetch_build_checkout(self, cli, tmpdir, datafiles, strict): + checkout = os.path.join(cli.directory, "checkout") + project = str(datafiles) + dev_files_path = os.path.join(project, "files", "dev-files") + element_path = os.path.join(project, "elements") + element_name = "build-test-{}.bst".format(self.KIND) - # Create our repo object of the given source type with - # the dev files, and then collect the initial ref. - # - repo = create_repo(kind, str(tmpdir)) - ref = repo.create(dev_files_path) + # Create our repo object of the given source type with + # the dev files, and then collect the initial ref. + # + repo = self.REPO(str(tmpdir)) + ref = repo.create(dev_files_path) - # Write out our test target - element = {"kind": "import", "sources": [repo.source_config(ref=ref)]} - _yaml.roundtrip_dump(element, os.path.join(element_path, element_name)) + # Write out our test target + element = {"kind": "import", "sources": [repo.source_config(ref=ref)]} + _yaml.roundtrip_dump(element, os.path.join(element_path, element_name)) - assert cli.get_element_state(project, element_name) == "fetch needed" - result = cli.run(project=project, args=strict_args(["build", element_name], strict)) - result.assert_success() - assert cli.get_element_state(project, element_name) == "cached" + assert cli.get_element_state(project, element_name) == "fetch needed" + result = cli.run(project=project, args=strict_args(["build", element_name], strict)) + result.assert_success() + assert cli.get_element_state(project, element_name) == "cached" - # Now check it out - result = cli.run( - project=project, args=strict_args(["artifact", "checkout", element_name, "--directory", checkout], strict) - ) - result.assert_success() + # Now check it out + result = cli.run( + project=project, args=strict_args(["artifact", "checkout", element_name, "--directory", checkout], strict) + ) + result.assert_success() - # Check that the pony.h include from files/dev-files exists - filename = os.path.join(checkout, "usr", "include", "pony.h") - assert os.path.exists(filename) + # Check that the pony.h include from files/dev-files exists + filename = os.path.join(checkout, "usr", "include", "pony.h") + assert os.path.exists(filename) |