summaryrefslogtreecommitdiffstats
path: root/test/lib/ansible_test/_internal/cli/commands/coverage/__init__.py
blob: 28e67709095dedaf3f9c9758fca3dbdef8020900 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
"""Command line parsing for all `coverage` commands."""
from __future__ import annotations

import argparse

from ....commands.coverage import (
    COVERAGE_GROUPS,
)

from ...environments import (
    CompositeActionCompletionFinder,
)

from .analyze import (
    do_analyze,
)

from .combine import (
    do_combine,
)

from .erase import (
    do_erase,
)

from .html import (
    do_html,
)

from .report import (
    do_report,
)

from .xml import (
    do_xml,
)


def do_coverage(
    subparsers,
    parent: argparse.ArgumentParser,
    completer: CompositeActionCompletionFinder,
) -> None:
    """Command line parsing for all `coverage` commands."""
    coverage_common = argparse.ArgumentParser(add_help=False, parents=[parent])

    parser = subparsers.add_parser(
        'coverage',
        help='code coverage management and reporting',
    )

    coverage_subparsers = parser.add_subparsers(metavar='COMMAND', required=True)

    do_analyze(coverage_subparsers, coverage_common, completer)
    do_erase(coverage_subparsers, coverage_common, completer)

    do_combine(coverage_subparsers, parent, add_coverage_common, completer)
    do_report(coverage_subparsers, parent, add_coverage_common, completer)
    do_html(coverage_subparsers, parent, add_coverage_common, completer)
    do_xml(coverage_subparsers, parent, add_coverage_common, completer)


def add_coverage_common(
    parser: argparse.ArgumentParser,
):
    """Add common coverage arguments."""
    parser.add_argument(
        '--group-by',
        metavar='GROUP',
        action='append',
        choices=COVERAGE_GROUPS,
        help='group output by: %s' % ', '.join(COVERAGE_GROUPS),
    )

    parser.add_argument(
        '--all',
        action='store_true',
        help='include all python/powershell source files',
    )

    parser.add_argument(
        '--stub',
        action='store_true',
        help='generate empty report of all python/powershell source files',
    )