blob: 3839ecc032e7842e649c742814be3d85ee7ad387 (
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
|
import json
import sys
from wcmatch import fnmatch as wcfnmatch
from coverage.results import Numbers
def get_data():
with open("coverage.json") as j:
return json.load(j)
def select_files(files, pat):
flags = wcfnmatch.NEGATE
selected = [f for f in files if wcfnmatch.fnmatch(f, pat, flags=flags)]
return selected
data = get_data()
pat = sys.argv[1:]
all_files = list(data["files"].keys())
selected = select_files(all_files, pat)
total = Numbers(precision=3)
for sel in selected:
sel_summ = data["files"][sel]["summary"]
total += Numbers(
n_statements=sel_summ["num_statements"],
n_excluded=sel_summ["excluded_lines"],
n_missing=sel_summ["missing_lines"],
n_branches=sel_summ["num_branches"],
n_partial_branches=sel_summ["num_partial_branches"],
n_missing_branches=sel_summ["missing_branches"],
)
print(total.pc_covered)
print(total.pc_covered_str)
|