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

pantsbuild / pants / 21552830208

31 Jan 2026 11:40PM UTC coverage: 80.277% (-0.05%) from 80.324%
21552830208

Pull #23062

github

web-flow
Merge 808a9786c into 2c4dcf9cf
Pull Request #23062: Remove support for Get

18 of 25 new or added lines in 4 files covered. (72.0%)

17119 existing lines in 541 files now uncovered.

78278 of 97510 relevant lines covered (80.28%)

3.36 hits per line

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

100.0
/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
3✔
5

6
import os
3✔
7

8
import pytest
3✔
9

10
from pants.backend.helm.goals import package
3✔
11
from pants.backend.helm.goals.package import BuiltHelmArtifact, HelmPackageFieldSet
3✔
12
from pants.backend.helm.subsystems.helm import HelmSubsystem
3✔
13
from pants.backend.helm.target_types import HelmChartTarget
3✔
14
from pants.backend.helm.target_types import rules as target_types_rules
3✔
15
from pants.backend.helm.testutil import (
3✔
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
3✔
22
from pants.build_graph.address import Address
3✔
23
from pants.core.goals.package import BuiltPackage
3✔
24
from pants.core.util_rules import config_files, external_tool, source_files
3✔
25
from pants.engine.rules import QueryRule
3✔
26
from pants.source.source_root import rules as source_root_rules
3✔
27
from pants.testutil.rule_runner import RuleRunner
3✔
28

29

30
@pytest.fixture
3✔
31
def rule_runner() -> RuleRunner:
3✔
32
    return RuleRunner(
3✔
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:
3✔
51
    target = rule_runner.get_target(Address(f"src/{chart_name}", target_name=chart_name))
3✔
52
    field_set = HelmPackageFieldSet.create(target)
3✔
53

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

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

64

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

70
    rule_runner.write_files(
3✔
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)
3✔
81

82

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

UNCOV
87
    output_path = "charts"
1✔
88

UNCOV
89
    rule_runner.write_files(
1✔
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

UNCOV
99
    _assert_build_package(rule_runner, chart_name=chart_name, chart_version=chart_version)
1✔
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