Skip to content

Commit 92d96b9

Browse files
committed
fix: json report needs 'no class' and 'no function' also
1 parent e47e7e7 commit 92d96b9

File tree

2 files changed

+236
-156
lines changed

2 files changed

+236
-156
lines changed

coverage/jsonreport.py

Lines changed: 37 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -126,35 +126,48 @@ def report_one_file(
126126
_convert_branch_arcs(analysis.missing_branch_arcs()),
127127
)
128128

129-
for region in file_reporter.code_regions():
130-
if region.kind not in reported_file:
131-
reported_file[region.kind] = {}
132-
num_lines = len(file_reporter.source().splitlines())
129+
num_lines = len(file_reporter.source().splitlines())
130+
for noun, plural in file_reporter.code_region_kinds():
131+
reported_file[plural] = region_data = {}
133132
outside_lines = set(range(1, num_lines + 1))
134-
outside_lines -= region.lines
135-
narrowed_analysis = analysis.narrow(region.lines)
136-
narrowed_nums = narrowed_analysis.numbers
137-
narrowed_summary = self.make_summary(narrowed_nums)
138-
reported_file[region.kind][region.name] = {
139-
"executed_lines": sorted(narrowed_analysis.executed),
140-
"summary": narrowed_summary,
141-
"missing_lines": sorted(narrowed_analysis.missing),
142-
"excluded_lines": sorted(narrowed_analysis.excluded),
143-
}
144-
if self.config.json_show_contexts:
145-
contexts = coverage_data.contexts_by_lineno(narrowed_analysis.filename)
146-
reported_file[region.kind][region.name]["contexts"] = contexts
147-
if coverage_data.has_arcs():
148-
narrowed_summary.update(self.make_branch_summary(narrowed_nums))
149-
reported_file[region.kind][region.name]["executed_branches"] = list(
150-
_convert_branch_arcs(narrowed_analysis.executed_branch_arcs()),
151-
)
152-
reported_file[region.kind][region.name]["missing_branches"] = list(
153-
_convert_branch_arcs(narrowed_analysis.missing_branch_arcs()),
133+
for region in file_reporter.code_regions():
134+
if region.kind != noun:
135+
continue
136+
outside_lines -= region.lines
137+
region_data[region.name] = self.make_region_data(
138+
coverage_data,
139+
analysis.narrow(region.lines),
154140
)
155141

142+
region_data[""] = self.make_region_data(
143+
coverage_data,
144+
analysis.narrow(outside_lines),
145+
)
156146
return reported_file
157147

148+
def make_region_data(self, coverage_data: CoverageData, narrowed_analysis: Analysis) -> JsonObj:
149+
"""Create the data object for one region of a file."""
150+
narrowed_nums = narrowed_analysis.numbers
151+
narrowed_summary = self.make_summary(narrowed_nums)
152+
this_region = {
153+
"executed_lines": sorted(narrowed_analysis.executed),
154+
"summary": narrowed_summary,
155+
"missing_lines": sorted(narrowed_analysis.missing),
156+
"excluded_lines": sorted(narrowed_analysis.excluded),
157+
}
158+
if self.config.json_show_contexts:
159+
contexts = coverage_data.contexts_by_lineno(narrowed_analysis.filename)
160+
this_region["contexts"] = contexts
161+
if coverage_data.has_arcs():
162+
narrowed_summary.update(self.make_branch_summary(narrowed_nums))
163+
this_region["executed_branches"] = list(
164+
_convert_branch_arcs(narrowed_analysis.executed_branch_arcs()),
165+
)
166+
this_region["missing_branches"] = list(
167+
_convert_branch_arcs(narrowed_analysis.missing_branch_arcs()),
168+
)
169+
return this_region
170+
158171

159172
def _convert_branch_arcs(
160173
branch_arcs: dict[TLineNo, list[TLineNo]],

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy