summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2021-11-01 19:00:15 -0400
committerNed Batchelder <ned@nedbatchelder.com>2021-11-01 19:35:59 -0400
commit75cd551a5200c97a08029abb5ad4c6d62141a328 (patch)
treeb65d9673a1f8a9b500ba960bf51477765f11bfd7
parentb0c00780b87b89f68d2e4a9fde386e10ffb01103 (diff)
downloadpython-coveragepy-git-75cd551a5200c97a08029abb5ad4c6d62141a328.tar.gz
lab: improvements to coverage-goals
- Warning up-front - Works for line-only measurement - Correct the command description.
-rw-r--r--lab/goals.py21
1 files changed, 11 insertions, 10 deletions
diff --git a/lab/goals.py b/lab/goals.py
index 2c98f043..d4054607 100644
--- a/lab/goals.py
+++ b/lab/goals.py
@@ -18,13 +18,9 @@ import sys
from wcmatch import fnmatch as wcfnmatch # python -m pip install wcmatch
-from coverage.results import Numbers # Note: an internal class!
+from coverage.results import Numbers # Note: an internal class!
-def get_data():
- with open("coverage.json") as j:
- return json.load(j)
-
def select_files(files, pat):
flags = wcfnmatch.NEGATE | wcfnmatch.NEGATEALL
selected = [f for f in files if wcfnmatch.fnmatch(f, pat, flags=flags)]
@@ -38,15 +34,15 @@ def total_for_files(data, files):
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"],
+ n_branches=sel_summ.get("num_branches", 0),
+ n_partial_branches=sel_summ.get("num_partial_branches", 0),
+ n_missing_branches=sel_summ.get("missing_branches", 0),
)
return total
def main(argv):
- parser = argparse.ArgumentParser(__doc__)
+ parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("--file", "-f", action="store_true", help="Check each file individually")
parser.add_argument("--group", "-g", action="store_true", help="Check a group of files")
parser.add_argument("--verbose", "-v", action="store_true", help="Be chatty about what's happening")
@@ -54,6 +50,10 @@ def main(argv):
parser.add_argument("pattern", type=str, nargs="+", help="Patterns to check")
args = parser.parse_args(argv)
+ print("** Note: this is a proof-of-concept. Support is not promised. **")
+ print("Read more: https://nedbatchelder.com/blog/202111/coverage_goals.html")
+ print("Feedback is appreciated: https://github.com/nedbat/coveragepy/issues/691")
+
if args.file and args.group:
print("Can't use --file and --group together")
return 1
@@ -61,7 +61,8 @@ def main(argv):
print("Need either --file or --group")
return 1
- data = get_data()
+ with open("coverage.json") as j:
+ data = json.load(j)
all_files = list(data["files"].keys())
selected = select_files(all_files, args.pattern)