diff options
author | Tom Pollard <tom.pollard@codethink.co.uk> | 2019-12-10 15:32:12 +0000 |
---|---|---|
committer | Tom Pollard <tom.pollard@codethink.co.uk> | 2020-01-09 10:14:45 +0000 |
commit | c3495b228e615916231649a809c7f12ef6d6257f (patch) | |
tree | a63d29ed386873b3c84d6dabb3d20c8b433e8578 | |
parent | 5960a90e03b1e5115f6e5912b126529846e589f5 (diff) | |
download | buildstream-tpollard/showjunction.tar.gz |
_frontend/widget.py: show_pipeline() Don't show buildable for junctiontpollard/showjunction
Instead output "junction" in magenta for info. Also include test
in format/junctions.py
-rw-r--r-- | src/buildstream/_frontend/cli.py | 2 | ||||
-rw-r--r-- | src/buildstream/_frontend/widget.py | 4 | ||||
-rw-r--r-- | tests/format/junctions.py | 9 |
3 files changed, 13 insertions, 2 deletions
diff --git a/src/buildstream/_frontend/cli.py b/src/buildstream/_frontend/cli.py index 365f5c421..fc501f09c 100644 --- a/src/buildstream/_frontend/cli.py +++ b/src/buildstream/_frontend/cli.py @@ -565,7 +565,7 @@ def show(app, elements, deps, except_, order, format_): %{name} The element name %{key} The abbreviated cache key (if all sources are consistent) %{full-key} The full cache key (if all sources are consistent) - %{state} cached, buildable, waiting or inconsistent + %{state} cached, buildable, waiting, inconsistent or junction %{config} The element configuration %{vars} Variable configuration %{env} Environment settings diff --git a/src/buildstream/_frontend/widget.py b/src/buildstream/_frontend/widget.py index 63fbfbb7d..98ebf31f3 100644 --- a/src/buildstream/_frontend/widget.py +++ b/src/buildstream/_frontend/widget.py @@ -350,7 +350,9 @@ class LogLine(Widget): if consistency == Consistency.INCONSISTENT: line = p.fmt_subst(line, "state", "no reference", fg="red") else: - if element._cached_failure(): + if element.get_kind() == "junction": + line = p.fmt_subst(line, "state", "junction", fg="magenta") + elif element._cached_failure(): line = p.fmt_subst(line, "state", "failed", fg="red") elif element._cached_success(): line = p.fmt_subst(line, "state", "cached", fg="magenta") diff --git a/tests/format/junctions.py b/tests/format/junctions.py index 45ccff222..43cd3f7ba 100644 --- a/tests/format/junctions.py +++ b/tests/format/junctions.py @@ -465,3 +465,12 @@ def test_invalid_target_format(cli, tmpdir, datafiles, target): result.assert_main_error(ErrorDomain.ELEMENT, None) assert "'target' option must be in format '{junction-name}:{element-name}'" in result.stderr + + +@pytest.mark.datafiles(DATA_DIR) +def test_junction_show(cli, tmpdir, datafiles): + project = os.path.join(str(datafiles), "foo") + copy_subprojects(project, datafiles, ["base"]) + + # Show, assert that it says junction + assert cli.get_element_state(project, "base.bst") == "junction" |