blob: a49bc28dd4f1bab1f777bcb614334f1d281dcb46 [file] [log] [blame]
# Copyright 2021 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Tests for build_target_completers."""
from pathlib import Path
from chromite.lib import constants
from chromite.lib import path_util
from chromite.lib import portage_util
from chromite.lib.completers import build_target_completers
def test_build_target(monkeypatch) -> None:
"""Test that expected build targets are returned from overlays."""
def mock_find_overlays(overlay_type, *_args, **_kwargs):
assert overlay_type == constants.BOTH_OVERLAYS
return [
"/overlays/overlay-overlay1",
"/overlays/overlay-overlay2",
"/overlays/overlay-variant-overlay3",
"/overlays/overlay-overlay2-private",
"/overlays/overlay-test",
"/overlays/project-testproject",
]
monkeypatch.setattr(portage_util, "FindOverlays", mock_find_overlays)
expected_build_targets = ["overlay1", "overlay2"]
build_targets = build_target_completers.build_target(
"overlay", None, None, None
)
assert build_targets == expected_build_targets
def test_built_build_target(monkeypatch, tmp_path) -> None:
"""Test that only built build targets are returned."""
def mock_path(path, *_args, **_kwargs):
assert path == Path(path_util.FromChrootPath("/build"))
return [
Path(tmp_path) / "sysroot1" / "etc" / "portage",
Path(tmp_path) / "sysroot2" / "etc" / "portage",
]
monkeypatch.setattr(Path, "glob", mock_path)
expected_built_build_targets = ["sysroot1", "sysroot2"]
built_build_targets = list(
build_target_completers.built_build_target("", None, None, None)
)
assert built_build_targets == expected_built_build_targets