summaryrefslogtreecommitdiff
path: root/src/buildstream/testing/_sourcetests/build_checkout.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildstream/testing/_sourcetests/build_checkout.py')
-rw-r--r--src/buildstream/testing/_sourcetests/build_checkout.py64
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)