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

pantsbuild / pants / 18913303678

29 Oct 2025 03:29PM UTC coverage: 80.004% (-0.3%) from 80.283%
18913303678

push

github

web-flow
Updating 3rd party lockfiles for PBS script and MyPy (#22796)

Also small bumps to fastapi and starlette, which updated over the last few days. Starlette updated for features, and then a security vulnerability.

Fastapi bumped just for starlette.

88 of 93 new or added lines in 73 files covered. (94.62%)

221 existing lines in 15 files now uncovered.

77334 of 96663 relevant lines covered (80.0%)

5.2 hits per line

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

77.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

UNCOV
57
    assert len(result.artifacts) == 1
×
UNCOV
58
    assert isinstance(result.artifacts[0], BuiltHelmArtifact)
×
UNCOV
59
    assert result.artifacts[0].relpath == os.path.join(
×
60
        dest_dir, f"{chart_name}-{chart_version}.tgz"
61
    )
UNCOV
62
    assert result.artifacts[0].info
×
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✔
UNCOV
84
    chart_name = "bar"
×
UNCOV
85
    chart_version = "0.2.0"
×
86

UNCOV
87
    output_path = "charts"
×
88

UNCOV
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

UNCOV
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