summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2021-03-02 08:16:47 -0500
committerNed Batchelder <ned@nedbatchelder.com>2021-03-02 08:44:00 -0500
commitc4fc383351c8a683e85953785d1365c9e5e791b7 (patch)
tree5714a6d09504ddbde8ed093890f368ed9e89163e
parent406d045a61bd2328b54b74aee50098f8e98a6dfc (diff)
downloadpython-coveragepy-git-nedbat/tweak-metacov.tar.gz
feat: percent_covered_display in the JSON reportnedbat/tweak-metacov
-rw-r--r--.github/workflows/coverage.yml2
-rw-r--r--CHANGES.rst4
-rw-r--r--coverage/jsonreport.py2
-rw-r--r--tests/test_json.py17
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)