summaryrefslogtreecommitdiff
path: root/coverage/control.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2010-08-24 11:18:35 -0400
committerNed Batchelder <ned@nedbatchelder.com>2010-08-24 11:18:35 -0400
commit9726ca6bbdc7d1ed5b0f732071210eed4ceada34 (patch)
tree9bb3969d6654499547cd823d44c3e39a78d57563 /coverage/control.py
parent07d2d57585186c8a6d88dd624a7348a58397f98d (diff)
downloadpython-coveragepy-git-9726ca6bbdc7d1ed5b0f732071210eed4ceada34.tar.gz
New config setting: [report]precision lets you specify the number of digits after the decimal point in coverage percentages. Finishes issue #16.
Diffstat (limited to 'coverage/control.py')
-rw-r--r--coverage/control.py19
1 files changed, 14 insertions, 5 deletions
diff --git a/coverage/control.py b/coverage/control.py
index 59d237ea..7df608db 100644
--- a/coverage/control.py
+++ b/coverage/control.py
@@ -10,8 +10,8 @@ from coverage.config import CoverageConfig
from coverage.data import CoverageData
from coverage.files import FileLocator, TreeMatcher, FnmatchMatcher
from coverage.html import HtmlReporter
-from coverage.misc import bool_or_none
-from coverage.results import Analysis
+from coverage.misc import CoverageException, bool_or_none
+from coverage.results import Analysis, Numbers
from coverage.summary import SummaryReporter
from coverage.xmlreport import XmlReporter
@@ -76,7 +76,13 @@ class coverage(object):
if config_file:
if config_file is True:
config_file = ".coveragerc"
- self.config.from_file(config_file)
+ try:
+ self.config.from_file(config_file)
+ except ValueError:
+ _, err, _ = sys.exc_info()
+ raise CoverageException(
+ "Couldn't read config file %s: %s" % (config_file, err)
+ )
# 3: from environment variables:
self.config.from_environment('COVERAGE_OPTIONS')
@@ -163,8 +169,11 @@ class coverage(object):
# Only _harvest_data once per measurement cycle.
self._harvested = False
- # When tearing down the coverage object, modules can become None.
- # Saving the modules as object attributes avoids problems, but it is
+ # Set the reporting precision.
+ Numbers.set_precision(self.config.precision)
+
+ # When tearing down the coverage object, modules can become None.
+ # Saving the modules as object attributes avoids problems, but it is
# quite ad-hoc which modules need to be saved and which references
# need to use the object attributes.
self.socket = socket