From c20bd0273d8d870fca387a73aa4188830dcc4bdc Mon Sep 17 00:00:00 2001 From: Benjamin Schubert Date: Sat, 15 Jan 2022 13:50:47 +0000 Subject: [PATCH] workspace.py: Move bzr specific test to the bzr source --- tests/frontend/workspace.py | 18 ------------------ tests/sources/bzr.py | 30 +++++++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 19 deletions(-) diff --git a/tests/frontend/workspace.py b/tests/frontend/workspace.py index 66e195c63..a97963cbd 100644 --- a/tests/frontend/workspace.py +++ b/tests/frontend/workspace.py @@ -29,7 +29,6 @@ import os import stat import shutil -import subprocess import pytest @@ -156,23 +155,6 @@ def open_workspace( return element_name, workspace_object.project_path, workspace -@pytest.mark.datafiles(DATA_DIR) -def test_open_bzr_customize(cli, tmpdir, datafiles): - element_name, project, workspace = open_workspace(cli, tmpdir, datafiles, "bzr") - - # Check that the .bzr dir exists - bzrdir = os.path.join(workspace, ".bzr") - assert os.path.isdir(bzrdir) - - # Check that the correct origin branch is set - element_config = _yaml.load(os.path.join(project, "elements", element_name), shortname=None) - source_config = element_config.get_sequence("sources").mapping_at(0) - output = subprocess.check_output(["bzr", "info"], cwd=workspace) - stripped_url = source_config.get_str("url").lstrip("file:///") - expected_output_str = "checkout of branch: /{}/{}".format(stripped_url, source_config.get_str("track")) - assert expected_output_str in str(output) - - @pytest.mark.datafiles(DATA_DIR) def test_open_multi(cli, tmpdir, datafiles): diff --git a/tests/sources/bzr.py b/tests/sources/bzr.py index f0dad8f77..3ba422920 100644 --- a/tests/sources/bzr.py +++ b/tests/sources/bzr.py @@ -2,17 +2,20 @@ # pylint: disable=redefined-outer-name import os +import subprocess + import pytest +from buildstream import _yaml from buildstream.testing import cli # pylint: disable=unused-import from buildstream.testing import create_repo from buildstream.testing import generate_element from buildstream.testing._utils.site import HAVE_BZR +pytestmark = pytest.mark.skipif(HAVE_BZR is False, reason="bzr is not available") DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "bzr") -@pytest.mark.skipif(HAVE_BZR is False, reason="bzr is not available") @pytest.mark.datafiles(os.path.join(DATA_DIR)) def test_fetch_checkout(cli, tmpdir, datafiles): project = str(datafiles) @@ -38,3 +41,28 @@ def test_fetch_checkout(cli, tmpdir, datafiles): text = f.read() assert text == "test\n" + + +@pytest.mark.datafiles(DATA_DIR) +def test_open_bzr_customize(cli, tmpdir, datafiles): + project = str(datafiles) + repo = create_repo("bzr", str(tmpdir)) + ref = repo.create(os.path.join(project, "basic")) + + element = {"kind": "import", "sources": [repo.source_config(ref=ref)]} + generate_element(project, "target.bst", element) + + workspace = os.path.join(datafiles, "bzr-workspace") + result = cli.run(cwd=project, project=project, args=["workspace", "open", "--directory", workspace, "target.bst"]) + result.assert_success() + + # Check that the .bzr dir exists + assert os.path.isdir(os.path.join(workspace, ".bzr")) + + # Check that the correct origin branch is set + element_config = _yaml.load(os.path.join(project, "target.bst"), shortname=None) + source_config = element_config.get_sequence("sources").mapping_at(0) + output = subprocess.check_output(["bzr", "info"], cwd=workspace) + stripped_url = source_config.get_str("url").lstrip("file:///") + expected_output_str = "checkout of branch: /{}/{}".format(stripped_url, source_config.get_str("track")) + assert expected_output_str in str(output)