You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildstream.apache.org by be...@apache.org on 2022/01/18 20:43:33 UTC

[buildstream] 02/03: workspace.py: Move bzr specific test to the bzr source

This is an automated email from the ASF dual-hosted git repository.

benschubert pushed a commit to branch bschubert/standard-source-tests-v2
in repository https://gitbox.apache.org/repos/asf/buildstream.git

commit 51ddca1aeab4ef56b29d254b063d184128c5b605
Author: Benjamin Schubert <co...@benschubert.me>
AuthorDate: Sat Jan 15 13:50:47 2022 +0000

    workspace.py: Move bzr specific test to the bzr source
---
 tests/frontend/workspace.py | 17 -----------------
 tests/sources/bzr.py        | 30 +++++++++++++++++++++++++++++-
 2 files changed, 29 insertions(+), 18 deletions(-)

diff --git a/tests/frontend/workspace.py b/tests/frontend/workspace.py
index 1a7c879..669df9e 100644
--- a/tests/frontend/workspace.py
+++ b/tests/frontend/workspace.py
@@ -169,23 +169,6 @@ def open_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):
     workspace_object = WorkspaceCreator(cli, tmpdir, datafiles)
     workspaces = workspace_object.open_workspaces(repo_kinds)
diff --git a/tests/sources/bzr.py b/tests/sources/bzr.py
index f0dad8f..3ba4229 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)