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

pantsbuild / pants / 18517631058

15 Oct 2025 04:18AM UTC coverage: 69.207% (-11.1%) from 80.267%
18517631058

Pull #22745

github

web-flow
Merge 642a76ca1 into 99919310e
Pull Request #22745: [windows] Add windows support in the stdio crate.

53815 of 77759 relevant lines covered (69.21%)

2.42 hits per line

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

0.0
/src/python/pants/backend/kotlin/test/junit.py
1
# Copyright 2022 Pants project contributors (see CONTRIBUTORS.md).
2
# Licensed under the Apache License, Version 2.0 (see LICENSE).
3
from __future__ import annotations
×
4

5
from dataclasses import dataclass
×
6

7
from pants.backend.kotlin.subsystems.kotlin import KotlinSubsystem
×
8
from pants.backend.kotlin.target_types import KotlinJunitTestDependenciesField
×
9
from pants.build_graph.address import Address
×
10
from pants.engine.rules import collect_rules, implicitly, rule
×
11
from pants.engine.target import FieldSet, InferDependenciesRequest, InferredDependencies
×
12
from pants.engine.unions import UnionRule
×
13
from pants.jvm.dependency_inference.artifact_mapper import (
×
14
    AllJvmArtifactTargets,
15
    find_jvm_artifacts_or_raise,
16
)
17
from pants.jvm.resolve.coordinate import Coordinate
×
18
from pants.jvm.subsystems import JvmSubsystem
×
19
from pants.jvm.target_types import JvmResolveField
×
20

21

22
@dataclass(frozen=True)
×
23
class KotlinJunitTestDependencyInferenceFieldSet(FieldSet):
×
24
    required_fields = (KotlinJunitTestDependenciesField, JvmResolveField)
×
25

26
    dependencies: KotlinJunitTestDependenciesField
×
27
    resolve: JvmResolveField
×
28

29

30
class InferKotlinJunitTestDependencyRequest(InferDependenciesRequest):
×
31
    infer_from = KotlinJunitTestDependencyInferenceFieldSet
×
32

33

34
@dataclass(frozen=True)
×
35
class KotlinJunitLibrariesForResolveRequest:
×
36
    resolve_name: str
×
37

38

39
@dataclass(frozen=True)
×
40
class KotlinJunitLibrariesForResolve:
×
41
    addresses: frozenset[Address]
×
42

43

44
@rule
×
45
async def resolve_kotlin_junit_libraries_for_resolve(
×
46
    request: KotlinJunitLibrariesForResolveRequest,
47
    jvm_artifact_targets: AllJvmArtifactTargets,
48
    jvm: JvmSubsystem,
49
    kotlin_subsystem: KotlinSubsystem,
50
) -> KotlinJunitLibrariesForResolve:
51
    kotlin_version = kotlin_subsystem.version_for_resolve(request.resolve_name)
×
52
    addresses = find_jvm_artifacts_or_raise(
×
53
        required_coordinates=[
54
            Coordinate(
55
                group="org.jetbrains.kotlin",
56
                artifact="kotlin-test-junit",
57
                version=kotlin_version,
58
            ),
59
        ],
60
        resolve=request.resolve_name,
61
        jvm_artifact_targets=jvm_artifact_targets,
62
        jvm=jvm,
63
        subsystem="the Kotlin test runtime for JUnit",
64
        target_type="kotlin_junit_tests",
65
        requirement_source="the relevant entry for this resolve in the `[kotlin].version_for_resolve` option",
66
    )
67
    return KotlinJunitLibrariesForResolve(addresses)
×
68

69

70
@rule(desc="Infer dependency on Kotlin Junit support artifact.")
×
71
async def infer_kotlin_junit_dependency(
×
72
    request: InferKotlinJunitTestDependencyRequest,
73
    jvm: JvmSubsystem,
74
) -> InferredDependencies:
75
    resolve = request.field_set.resolve.normalized_value(jvm)
×
76

77
    kotlin_junit_libraries = await resolve_kotlin_junit_libraries_for_resolve(
×
78
        KotlinJunitLibrariesForResolveRequest(resolve), **implicitly()
79
    )
80
    return InferredDependencies(kotlin_junit_libraries.addresses)
×
81

82

83
def rules():
×
84
    return (
×
85
        *collect_rules(),
86
        UnionRule(InferDependenciesRequest, InferKotlinJunitTestDependencyRequest),
87
    )
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