• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pantsbuild / pants / 25259185675

02 May 2026 06:47PM UTC coverage: 92.141% (-0.8%) from 92.955%
25259185675

push

github

web-flow
Fix the dynamic UI. (#23306)

In #23114 we upgraded to indicatif 0.18.4,
which included a fix to respect TERM, and 
display nothing if it's unset.

Since we did not pass TERM through pantsd, the
dynamic ui is now not shown. 

This change fixes that, and also pass NO_COLOR
through, since indicatif inspects it too.

88773 of 96345 relevant lines covered (92.14%)

3.83 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

87.5
/src/python/pants/backend/helm/goals/package_test.py
1
# Copyright 2022 Pants project contributors (see CONTRIBUTORS.md).
2
# Licensed under the Apache License, Version 2.0 (see LICENSE).
3

4
from __future__ import annotations
2✔
5

6
import os
2✔
7

8
import pytest
2✔
9

10
from pants.backend.helm.goals import package
2✔
11
from pants.backend.helm.goals.package import BuiltHelmArtifact, HelmPackageFieldSet
2✔
12
from pants.backend.helm.subsystems.helm import HelmSubsystem
2✔
13
from pants.backend.helm.target_types import HelmChartTarget
2✔
14
from pants.backend.helm.target_types import rules as target_types_rules
2✔
15
from pants.backend.helm.testutil import (
2✔
16
    HELM_TEMPLATE_HELPERS_FILE,
17
    HELM_VALUES_FILE,
18
    K8S_SERVICE_TEMPLATE,
19
    gen_chart_file,
20
)
21
from pants.backend.helm.util_rules import chart, sources, tool
2✔
22
from pants.build_graph.address import Address
2✔
23
from pants.core.goals.package import BuiltPackage
2✔
24
from pants.core.util_rules import config_files, external_tool, source_files
2✔
25
from pants.engine.rules import QueryRule
2✔
26
from pants.source.source_root import rules as source_root_rules
2✔
27
from pants.testutil.rule_runner import RuleRunner
2✔
28

29

30
@pytest.fixture
2✔
31
def rule_runner() -> RuleRunner:
2✔
32
    return RuleRunner(
2✔
33
        target_types=[HelmChartTarget],
34
        rules=[
35
            *config_files.rules(),
36
            *external_tool.rules(),
37
            *tool.rules(),
38
            *chart.rules(),
39
            *package.rules(),
40
            *source_files.rules(),
41
            *source_root_rules(),
42
            *sources.rules(),
43
            *target_types_rules(),
44
            *HelmSubsystem.rules(),
45
            QueryRule(BuiltPackage, [HelmPackageFieldSet]),
46
        ],
47
    )
48

49

50
def _assert_build_package(rule_runner: RuleRunner, *, chart_name: str, chart_version: str) -> None:
2✔
51
    target = rule_runner.get_target(Address(f"src/{chart_name}", target_name=chart_name))
2✔
52
    field_set = HelmPackageFieldSet.create(target)
2✔
53

54
    dest_dir = field_set.output_path.value_or_default(file_ending=None)
2✔
55
    result = rule_runner.request(BuiltPackage, [field_set])
2✔
56

57
    assert len(result.artifacts) == 1
2✔
58
    assert isinstance(result.artifacts[0], BuiltHelmArtifact)
2✔
59
    assert result.artifacts[0].relpath == os.path.join(
2✔
60
        dest_dir, f"{chart_name}-{chart_version}.tgz"
61
    )
62
    assert result.artifacts[0].info
2✔
63

64

65
@pytest.mark.platform_specific_behavior
2✔
66
def test_helm_package(rule_runner: RuleRunner) -> None:
2✔
67
    chart_name = "foo"
2✔
68
    chart_version = "0.1.0"
2✔
69

70
    rule_runner.write_files(
2✔
71
        {
72
            f"src/{chart_name}/BUILD": f"helm_chart(name='{chart_name}')",
73
            f"src/{chart_name}/Chart.yaml": gen_chart_file(chart_name, version=chart_version),
74
            f"src/{chart_name}/values.yaml": HELM_VALUES_FILE,
75
            f"src/{chart_name}/templates/_helpers.tpl": HELM_TEMPLATE_HELPERS_FILE,
76
            f"src/{chart_name}/templates/service.yaml": K8S_SERVICE_TEMPLATE,
77
        }
78
    )
79

80
    _assert_build_package(rule_runner, chart_name=chart_name, chart_version=chart_version)
2✔
81

82

83
def test_helm_package_with_custom_output_path(rule_runner: RuleRunner) -> None:
2✔
84
    chart_name = "bar"
×
85
    chart_version = "0.2.0"
×
86

87
    output_path = "charts"
×
88

89
    rule_runner.write_files(
×
90
        {
91
            f"src/{chart_name}/BUILD": f"""helm_chart(name="{chart_name}", output_path="{output_path}")""",
92
            f"src/{chart_name}/Chart.yaml": gen_chart_file(chart_name, version=chart_version),
93
            f"src/{chart_name}/values.yaml": HELM_VALUES_FILE,
94
            f"src/{chart_name}/templates/_helpers.tpl": HELM_TEMPLATE_HELPERS_FILE,
95
            f"src/{chart_name}/templates/service.yaml": K8S_SERVICE_TEMPLATE,
96
        }
97
    )
98

99
    _assert_build_package(rule_runner, chart_name=chart_name, chart_version=chart_version)
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc