Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 0 additions & 18 deletions tests/frontend/workspace.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
import os
import stat
import shutil
import subprocess

import pytest

Expand Down Expand Up @@ -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):

Expand Down
30 changes: 29 additions & 1 deletion tests/sources/bzr.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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)