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

pantsbuild / pants / 19015773527

02 Nov 2025 05:33PM UTC coverage: 17.872% (-62.4%) from 80.3%
19015773527

Pull #22816

github

web-flow
Merge a12d75757 into 6c024e162
Pull Request #22816: Update Pants internal Python to 3.14

4 of 5 new or added lines in 3 files covered. (80.0%)

28452 existing lines in 683 files now uncovered.

9831 of 55007 relevant lines covered (17.87%)

0.18 hits per line

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

0.0
/src/python/pants/backend/java/target_types.py
1
# Copyright 2020 Pants project contributors (see CONTRIBUTORS.md).
2
# Licensed under the Apache License, Version 2.0 (see LICENSE).
3

UNCOV
4
from __future__ import annotations
×
5

UNCOV
6
from dataclasses import dataclass
×
7

UNCOV
8
from pants.engine.rules import collect_rules
×
UNCOV
9
from pants.engine.target import (
×
10
    COMMON_TARGET_FIELDS,
11
    FieldSet,
12
    MultipleSourcesField,
13
    SingleSourceField,
14
    Target,
15
    TargetFilesGenerator,
16
    generate_multiple_sources_field_help_message,
17
)
UNCOV
18
from pants.jvm import target_types as jvm_target_types
×
UNCOV
19
from pants.jvm.run import jvm_run_rules
×
UNCOV
20
from pants.jvm.target_types import (
×
21
    JunitTestExtraEnvVarsField,
22
    JunitTestSourceField,
23
    JunitTestTimeoutField,
24
    JvmDependenciesField,
25
    JvmJdkField,
26
    JvmMainClassNameField,
27
    JvmProvidesTypesField,
28
    JvmResolveField,
29
    JvmRunnableSourceFieldSet,
30
)
31

32

UNCOV
33
class JavaSourceField(SingleSourceField):
×
UNCOV
34
    expected_file_extensions = (".java",)
×
35

36

UNCOV
37
class JavaGeneratorSourcesField(MultipleSourcesField):
×
UNCOV
38
    expected_file_extensions = (".java",)
×
39

40

UNCOV
41
@dataclass(frozen=True)
×
UNCOV
42
class JavaFieldSet(JvmRunnableSourceFieldSet):
×
UNCOV
43
    required_fields = (JavaSourceField,)
×
44

UNCOV
45
    sources: JavaSourceField
×
46

47

UNCOV
48
@dataclass(frozen=True)
×
UNCOV
49
class JavaGeneratorFieldSet(FieldSet):
×
UNCOV
50
    required_fields = (JavaGeneratorSourcesField,)
×
51

UNCOV
52
    sources: JavaGeneratorSourcesField
×
53

54

55
# -----------------------------------------------------------------------------------------------
56
# `junit_test` and `junit_tests` targets
57
# -----------------------------------------------------------------------------------------------
58

59

UNCOV
60
class JavaJunitTestSourceField(JavaSourceField, JunitTestSourceField):
×
61
    """A JUnit test file written in Java."""
62

63

UNCOV
64
class JunitTestTarget(Target):
×
UNCOV
65
    alias = "junit_test"
×
UNCOV
66
    core_fields = (
×
67
        *COMMON_TARGET_FIELDS,
68
        JavaJunitTestSourceField,
69
        JunitTestTimeoutField,
70
        JunitTestExtraEnvVarsField,
71
        JvmDependenciesField,
72
        JvmResolveField,
73
        JvmProvidesTypesField,
74
        JvmJdkField,
75
    )
UNCOV
76
    help = "A single Java test, run with JUnit."
×
77

78

UNCOV
79
class JavaTestsGeneratorSourcesField(JavaGeneratorSourcesField):
×
UNCOV
80
    default = ("*Test.java",)
×
UNCOV
81
    help = generate_multiple_sources_field_help_message(
×
82
        "Example: `sources=['*Test.java', '!TestIgnore.java']`"
83
    )
84

85

UNCOV
86
class JunitTestsGeneratorTarget(TargetFilesGenerator):
×
UNCOV
87
    alias = "junit_tests"
×
UNCOV
88
    core_fields = (
×
89
        *COMMON_TARGET_FIELDS,
90
        JavaTestsGeneratorSourcesField,
91
    )
UNCOV
92
    generated_target_cls = JunitTestTarget
×
UNCOV
93
    copied_fields = COMMON_TARGET_FIELDS
×
UNCOV
94
    moved_fields = (
×
95
        JunitTestTimeoutField,
96
        JunitTestExtraEnvVarsField,
97
        JvmDependenciesField,
98
        JvmJdkField,
99
        JvmProvidesTypesField,
100
        JvmResolveField,
101
    )
UNCOV
102
    help = "Generate a `junit_test` target for each file in the `sources` field."
×
103

104

105
# -----------------------------------------------------------------------------------------------
106
# `java_source` and `java_sources` targets
107
# -----------------------------------------------------------------------------------------------
108

109

UNCOV
110
class JavaSourceTarget(Target):
×
UNCOV
111
    alias = "java_source"
×
UNCOV
112
    core_fields = (
×
113
        *COMMON_TARGET_FIELDS,
114
        JvmDependenciesField,
115
        JavaSourceField,
116
        JvmResolveField,
117
        JvmMainClassNameField,
118
        JvmProvidesTypesField,
119
        JvmJdkField,
120
    )
UNCOV
121
    help = "A single Java source file containing application or library code."
×
122

123

UNCOV
124
class JavaSourcesGeneratorSourcesField(JavaGeneratorSourcesField):
×
UNCOV
125
    default = ("*.java",) + tuple(f"!{pat}" for pat in JavaTestsGeneratorSourcesField.default)
×
UNCOV
126
    help = generate_multiple_sources_field_help_message(
×
127
        "Example: `sources=['Example.java', 'New*.java', '!OldExample.java']`"
128
    )
129

130

UNCOV
131
class JavaSourcesGeneratorTarget(TargetFilesGenerator):
×
UNCOV
132
    alias = "java_sources"
×
UNCOV
133
    core_fields = (
×
134
        *COMMON_TARGET_FIELDS,
135
        JavaSourcesGeneratorSourcesField,
136
    )
UNCOV
137
    generated_target_cls = JavaSourceTarget
×
UNCOV
138
    copied_fields = COMMON_TARGET_FIELDS
×
UNCOV
139
    moved_fields = (
×
140
        JvmDependenciesField,
141
        JvmResolveField,
142
        JvmJdkField,
143
        JvmMainClassNameField,
144
        JvmProvidesTypesField,
145
    )
UNCOV
146
    help = "Generate a `java_source` target for each file in the `sources` field."
×
147

148

UNCOV
149
def rules():
×
UNCOV
150
    return [
×
151
        *collect_rules(),
152
        *jvm_target_types.rules(),
153
        *jvm_run_rules(JavaFieldSet),
154
    ]
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

© 2025 Coveralls, Inc