Skip to content

Commit a9992d2

Browse files
committed
test: add a test of json regions with branches
1 parent 8b89764 commit a9992d2

File tree

1 file changed

+166
-21
lines changed

1 file changed

+166
-21
lines changed

tests/test_json.py

+166-21
Original file line numberDiff line numberDiff line change
@@ -50,19 +50,21 @@ def _assert_expected_json_report_with_regions(
5050
Helper that creates an example file for regions tests.
5151
"""
5252
self.make_file("b.py", """\
53-
a = {'b': 1}
53+
a = {"b": 1}
5454
5555
def c():
56-
return 1
56+
return 4
5757
5858
class C:
5959
pass
6060
6161
class D:
6262
def e(self):
63-
return 2
63+
if a.get("a"):
64+
return 12
65+
return 13
6466
def f(self):
65-
return 3
67+
return 15
6668
""")
6769
self._compare_json_reports(cov, expected_result, "b")
6870

@@ -187,16 +189,16 @@ def test_regions_coverage(self) -> None:
187189
},
188190
"files": {
189191
"b.py": {
190-
"executed_lines": [1, 3, 6, 7, 9, 10, 12],
192+
"executed_lines": [1, 3, 6, 7, 9, 10, 14],
191193
"summary": {
192194
"covered_lines": 7,
193-
"num_statements": 10,
194-
"percent_covered": 70.0,
195-
"percent_covered_display": "70",
196-
"missing_lines": 3,
195+
"num_statements": 12,
196+
"percent_covered": 58.333333333333336,
197+
"percent_covered_display": "58",
198+
"missing_lines": 5,
197199
"excluded_lines": 0,
198200
},
199-
"missing_lines": [4, 11, 13],
201+
"missing_lines": [4, 11, 12, 13, 15],
200202
"excluded_lines": [],
201203
"function": {
202204
"c": {
@@ -216,13 +218,13 @@ def test_regions_coverage(self) -> None:
216218
"executed_lines": [],
217219
"summary": {
218220
"covered_lines": 0,
219-
"num_statements": 1,
221+
"num_statements": 3,
220222
"percent_covered": 0.0,
221223
"percent_covered_display": "0",
222-
"missing_lines": 1,
224+
"missing_lines": 3,
223225
"excluded_lines": 0,
224226
},
225-
"missing_lines": [11],
227+
"missing_lines": [11, 12, 13],
226228
"excluded_lines": [],
227229
},
228230
"D.f": {
@@ -235,7 +237,7 @@ def test_regions_coverage(self) -> None:
235237
"missing_lines": 1,
236238
"excluded_lines": 0,
237239
},
238-
"missing_lines": [13],
240+
"missing_lines": [15],
239241
"excluded_lines": [],
240242
},
241243
},
@@ -257,25 +259,168 @@ def test_regions_coverage(self) -> None:
257259
"executed_lines": [],
258260
"summary": {
259261
"covered_lines": 0,
260-
"num_statements": 2,
262+
"num_statements": 4,
263+
"percent_covered": 0.0,
264+
"percent_covered_display": "0",
265+
"missing_lines": 4,
266+
"excluded_lines": 0,
267+
},
268+
"missing_lines": [11, 12, 13, 15],
269+
"excluded_lines": [],
270+
},
271+
},
272+
},
273+
},
274+
"totals": {
275+
"covered_lines": 7,
276+
"num_statements": 12,
277+
"percent_covered": 58.333333333333336,
278+
"percent_covered_display": "58",
279+
"missing_lines": 5,
280+
"excluded_lines": 0,
281+
},
282+
}
283+
self._assert_expected_json_report_with_regions(cov, expected_result)
284+
285+
def test_branch_regions_coverage(self) -> None:
286+
cov = coverage.Coverage(branch=True)
287+
expected_result = {
288+
"files": {
289+
"b.py": {
290+
"class": {
291+
"C": {
292+
"excluded_lines": [],
293+
"executed_branches": [],
294+
"executed_lines": [],
295+
"missing_branches": [],
296+
"missing_lines": [],
297+
"summary": {
298+
"covered_branches": 0,
299+
"covered_lines": 0,
300+
"excluded_lines": 0,
301+
"missing_branches": 0,
302+
"missing_lines": 0,
303+
"num_branches": 0,
304+
"num_partial_branches": 0,
305+
"num_statements": 0,
306+
"percent_covered": 100.0,
307+
"percent_covered_display": "100",
308+
},
309+
},
310+
"D": {
311+
"excluded_lines": [],
312+
"executed_branches": [],
313+
"executed_lines": [],
314+
"missing_branches": [[11, 12], [11, 13]],
315+
"missing_lines": [11, 12, 13, 15],
316+
"summary": {
317+
"covered_branches": 0,
318+
"covered_lines": 0,
319+
"excluded_lines": 0,
320+
"missing_branches": 2,
321+
"missing_lines": 4,
322+
"num_branches": 2,
323+
"num_partial_branches": 0,
324+
"num_statements": 4,
325+
"percent_covered": 0.0,
326+
"percent_covered_display": "0",
327+
},
328+
},
329+
},
330+
"excluded_lines": [],
331+
"executed_branches": [],
332+
"executed_lines": [1, 3, 6, 7, 9, 10, 14],
333+
"function": {
334+
"D.e": {
335+
"excluded_lines": [],
336+
"executed_branches": [],
337+
"executed_lines": [],
338+
"missing_branches": [[11, 12], [11, 13]],
339+
"missing_lines": [11, 12, 13],
340+
"summary": {
341+
"covered_branches": 0,
342+
"covered_lines": 0,
343+
"excluded_lines": 0,
344+
"missing_branches": 2,
345+
"missing_lines": 3,
346+
"num_branches": 2,
347+
"num_partial_branches": 0,
348+
"num_statements": 3,
261349
"percent_covered": 0.0,
262350
"percent_covered_display": "0",
263-
"missing_lines": 2,
351+
},
352+
},
353+
"D.f": {
354+
"excluded_lines": [],
355+
"executed_branches": [],
356+
"executed_lines": [],
357+
"missing_branches": [],
358+
"missing_lines": [15],
359+
"summary": {
360+
"covered_branches": 0,
361+
"covered_lines": 0,
264362
"excluded_lines": 0,
363+
"missing_branches": 0,
364+
"missing_lines": 1,
365+
"num_branches": 0,
366+
"num_partial_branches": 0,
367+
"num_statements": 1,
368+
"percent_covered": 0.0,
369+
"percent_covered_display": "0",
265370
},
266-
"missing_lines": [11, 13],
371+
},
372+
"c": {
267373
"excluded_lines": [],
374+
"executed_branches": [],
375+
"executed_lines": [],
376+
"missing_branches": [],
377+
"missing_lines": [4],
378+
"summary": {
379+
"covered_branches": 0,
380+
"covered_lines": 0,
381+
"excluded_lines": 0,
382+
"missing_branches": 0,
383+
"missing_lines": 1,
384+
"num_branches": 0,
385+
"num_partial_branches": 0,
386+
"num_statements": 1,
387+
"percent_covered": 0.0,
388+
"percent_covered_display": "0",
389+
},
268390
},
269391
},
392+
"missing_branches": [[11, 12], [11, 13]],
393+
"missing_lines": [4, 11, 12, 13, 15],
394+
"summary": {
395+
"covered_branches": 0,
396+
"covered_lines": 7,
397+
"excluded_lines": 0,
398+
"missing_branches": 2,
399+
"missing_lines": 5,
400+
"num_branches": 2,
401+
"num_partial_branches": 0,
402+
"num_statements": 12,
403+
"percent_covered": 50.0,
404+
"percent_covered_display": "50",
405+
},
270406
},
271407
},
408+
"meta": {
409+
"branch_coverage": True,
410+
"format": 2,
411+
"show_contexts": False,
412+
},
272413
"totals": {
414+
"covered_branches": 0,
273415
"covered_lines": 7,
274-
"num_statements": 10,
275-
"percent_covered": 70.0,
276-
"percent_covered_display": "70",
277-
"missing_lines": 3,
278416
"excluded_lines": 0,
417+
"missing_branches": 2,
418+
"missing_lines": 5,
419+
"num_branches": 2,
420+
"num_partial_branches": 0,
421+
"num_statements": 12,
422+
"percent_covered": 50.0,
423+
"percent_covered_display": "50",
279424
},
280425
}
281426
self._assert_expected_json_report_with_regions(cov, expected_result)

0 commit comments

Comments
 (0)