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

pantsbuild / pants / 24604025132

18 Apr 2026 11:49AM UTC coverage: 92.478% (-0.4%) from 92.924%
24604025132

Pull #23268

github

web-flow
Merge c60f47029 into a92bc34b6
Pull Request #23268: perf: Remove python coroutine/trampoline overhead in awaits for ~22% faster `dependencies` goal

31 of 37 new or added lines in 4 files covered. (83.78%)

443 existing lines in 21 files now uncovered.

91210 of 98629 relevant lines covered (92.48%)

4.03 hits per line

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

87.8
/src/python/pants/backend/javascript/goals/test_test.py
1
# Copyright 2023 Pants project contributors (see CONTRIBUTORS.md).
2
# Licensed under the Apache License, Version 2.0 (see LICENSE).
3
from __future__ import annotations
1✔
4

5
from typing import Any
1✔
6
from unittest.mock import Mock, sentinel
1✔
7

8
import pytest
1✔
9

10
from pants.backend.javascript.goals.test import (
1✔
11
    JSTestFieldSet,
12
    JSTestRequest,
13
    partition_nodejs_tests,
14
)
15
from pants.backend.javascript.package_json import OwningNodePackage, OwningNodePackageRequest
1✔
16
from pants.backend.javascript.target_types import (
1✔
17
    JSTestBatchCompatibilityTagField,
18
    JSTestExtraEnvVarsField,
19
)
20
from pants.build_graph.address import Address
1✔
21
from pants.testutil.rule_runner import run_rule_with_mocks
1✔
22

23

24
def given_field_set(
1✔
25
    address: Any, *, env_vars: tuple[str, ...] = tuple(), batch_compatibility_tag: str | None
26
) -> Mock:
27
    field_set = Mock(JSTestFieldSet)
1✔
28
    field_set.extra_env_vars = Mock(JSTestExtraEnvVarsField)
1✔
29
    field_set.extra_env_vars.sorted.return_value = env_vars
1✔
30
    field_set.batch_compatibility_tag = JSTestBatchCompatibilityTagField(
1✔
31
        batch_compatibility_tag, address
32
    )
33
    field_set.address = address
1✔
34
    return field_set
1✔
35

36

37
def test_batches_are_separated_on_owning_packages() -> None:
1✔
38
    field_set_1 = given_field_set(Address("1"), batch_compatibility_tag="default")
1✔
39
    field_set_2 = given_field_set(Address("2"), batch_compatibility_tag="default")
1✔
40

41
    request = JSTestRequest.PartitionRequest(field_sets=(field_set_1, field_set_2))
1✔
42

43
    def mocked_owning_node_package(r: OwningNodePackageRequest) -> Any:
1✔
UNCOV
44
        if r.address == Address("1"):
×
UNCOV
45
            return OwningNodePackage(sentinel.owning_package_1)
×
46
        else:
UNCOV
47
            return OwningNodePackage(sentinel.owning_package_2)
×
48

49
    partitions = run_rule_with_mocks(
1✔
50
        partition_nodejs_tests,
51
        rule_args=(request,),
52
        mock_calls={
53
            "pants.backend.javascript.package_json.find_owning_package": mocked_owning_node_package
54
        },
55
    )
56

57
    assert len(partitions) == 2
1✔
58

59

60
@pytest.mark.parametrize(
1✔
61
    "field_set_1, field_set_2",
62
    [
63
        pytest.param(
64
            given_field_set(Address("1"), batch_compatibility_tag="1"),
65
            given_field_set(Address("2"), batch_compatibility_tag="2"),
66
            id="compatibility_tag",
67
        ),
68
        pytest.param(
69
            given_field_set(Address("1"), batch_compatibility_tag="default"),
70
            given_field_set(
71
                Address("2"), batch_compatibility_tag="default", env_vars=("NODE_ENV=dev",)
72
            ),
73
            id="extra_env_vars",
74
        ),
75
        pytest.param(
76
            given_field_set(Address("1"), batch_compatibility_tag=None),
77
            given_field_set(Address("2"), batch_compatibility_tag=None),
78
            id="no_compatibility_tag",
79
        ),
80
    ],
81
)
82
def test_batches_are_separated_on_metadata(field_set_1: Mock, field_set_2: Mock) -> None:
1✔
83
    request = JSTestRequest.PartitionRequest(field_sets=(field_set_1, field_set_2))
1✔
84

85
    def mocked_owning_node_package(_: OwningNodePackageRequest) -> Any:
1✔
UNCOV
86
        return OwningNodePackage(sentinel.same_owning_package)
×
87

88
    parititions = run_rule_with_mocks(
1✔
89
        partition_nodejs_tests,
90
        rule_args=(request,),
91
        mock_calls={
92
            "pants.backend.javascript.package_json.find_owning_package": mocked_owning_node_package
93
        },
94
    )
95

96
    assert len(parititions) == 2
1✔
97

98

99
def test_batches_are_the_same_for_same_compat_and_package() -> None:
1✔
100
    field_set_1 = given_field_set(Address("1"), batch_compatibility_tag="default")
1✔
101

102
    field_set_2 = given_field_set(Address("2"), batch_compatibility_tag="default")
1✔
103
    request = JSTestRequest.PartitionRequest(field_sets=(field_set_1, field_set_2))
1✔
104

105
    def mocked_owning_node_package(_: OwningNodePackageRequest) -> Any:
1✔
UNCOV
106
        return OwningNodePackage(sentinel.same_owning_package)
×
107

108
    parititions = run_rule_with_mocks(
1✔
109
        partition_nodejs_tests,
110
        rule_args=(request,),
111
        mock_calls={
112
            "pants.backend.javascript.package_json.find_owning_package": mocked_owning_node_package
113
        },
114
    )
115

116
    assert len(parititions) == 1
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