diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2021-03-02 08:16:47 -0500 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2021-03-02 08:44:00 -0500 |
commit | c4fc383351c8a683e85953785d1365c9e5e791b7 (patch) | |
tree | 5714a6d09504ddbde8ed093890f368ed9e89163e | |
parent | 406d045a61bd2328b54b74aee50098f8e98a6dfc (diff) | |
download | python-coveragepy-git-c4fc383351c8a683e85953785d1365c9e5e791b7.tar.gz |
feat: percent_covered_display in the JSON reportnedbat/tweak-metacov
-rw-r--r-- | .github/workflows/coverage.yml | 2 | ||||
-rw-r--r-- | CHANGES.rst | 4 | ||||
-rw-r--r-- | coverage/jsonreport.py | 2 | ||||
-rw-r--r-- | tests/test_json.py | 17 |
4 files changed, 19 insertions, 6 deletions
diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 3cd01330..f0ae3422 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -129,7 +129,7 @@ jobs: set -xe python -m igor combine_html python -m coverage json - echo "::set-output name=total::$(python -c "import json;print(format(json.load(open('coverage.json'))['totals']['percent_covered'],'.2f'))")" + echo "::set-output name=total::$(python -c "import json;print(json.load(open('coverage.json'))['totals']['percent_covered_display'])")" - name: "Upload to codecov" uses: codecov/codecov-action@v1 diff --git a/CHANGES.rst b/CHANGES.rst index 86f5f725..4830ad69 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -24,7 +24,9 @@ want to know what's different in 5.0 since 4.5.x, see :ref:`whatsnew5x`. Unreleased ---------- -Nothing yet. +- The JSON report now includes ``percent_covered_display``, a string with the + total percentage, rounded to the same number of decimal places as the other + reports' totals. .. _changes_55: diff --git a/coverage/jsonreport.py b/coverage/jsonreport.py index 4287bc79..ccb46a89 100644 --- a/coverage/jsonreport.py +++ b/coverage/jsonreport.py @@ -52,6 +52,7 @@ class JsonReporter(object): 'covered_lines': self.total.n_executed, 'num_statements': self.total.n_statements, 'percent_covered': self.total.pc_covered, + 'percent_covered_display': self.total.pc_covered_str, 'missing_lines': self.total.n_missing, 'excluded_lines': self.total.n_excluded, } @@ -80,6 +81,7 @@ class JsonReporter(object): 'covered_lines': nums.n_executed, 'num_statements': nums.n_statements, 'percent_covered': nums.pc_covered, + 'percent_covered_display': nums.pc_covered_str, 'missing_lines': nums.n_missing, 'excluded_lines': nums.n_excluded, } diff --git a/tests/test_json.py b/tests/test_json.py index f7ce7934..47955742 100644 --- a/tests/test_json.py +++ b/tests/test_json.py @@ -57,6 +57,7 @@ class JsonReportTest(UsingModulesMixin, CoverageTest): 'covered_branches': 1, 'missing_branches': 1, 'percent_covered': 60.0, + 'percent_covered_display': '60', } } }, @@ -68,6 +69,7 @@ class JsonReportTest(UsingModulesMixin, CoverageTest): 'excluded_lines': 0, 'num_partial_branches': 1, 'percent_covered': 60.0, + 'percent_covered_display': '60', 'covered_branches': 1, 'missing_branches': 1, } @@ -92,7 +94,8 @@ class JsonReportTest(UsingModulesMixin, CoverageTest): 'missing_lines': 1, 'covered_lines': 2, 'num_statements': 3, - 'percent_covered': 66.66666666666667 + 'percent_covered': 66.66666666666667, + 'percent_covered_display': '67', } } }, @@ -101,7 +104,8 @@ class JsonReportTest(UsingModulesMixin, CoverageTest): 'missing_lines': 1, 'covered_lines': 2, 'num_statements': 3, - 'percent_covered': 66.66666666666667 + 'percent_covered': 66.66666666666667, + 'percent_covered_display': '67', } } self._assert_expected_json_report(cov, expected_result) @@ -112,6 +116,9 @@ class JsonReportTest(UsingModulesMixin, CoverageTest): [run] relative_files = {} + [report] + precision = 2 + [json] show_contexts = True """.format(relative_files)) @@ -140,7 +147,8 @@ class JsonReportTest(UsingModulesMixin, CoverageTest): 'missing_lines': 1, 'covered_lines': 2, 'num_statements': 3, - 'percent_covered': 66.66666666666667 + 'percent_covered': 66.66666666666667, + 'percent_covered_display': '66.67', } } }, @@ -149,7 +157,8 @@ class JsonReportTest(UsingModulesMixin, CoverageTest): 'missing_lines': 1, 'covered_lines': 2, 'num_statements': 3, - 'percent_covered': 66.66666666666667 + 'percent_covered': 66.66666666666667, + 'percent_covered_display': '66.67', } } self._assert_expected_json_report(cov, expected_result) |