summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2009-11-28 21:10:24 -0500
committerNed Batchelder <ned@nedbatchelder.com>2009-11-28 21:10:24 -0500
commitb8b1aaed4d6eaeb8cab1afa2449863fe2bd91313 (patch)
treecd60550e2158fd3d731c28ad9ca51f0d1d3f78c5
parent7cc3c763513ccdb6d6e783db668f742944495f43 (diff)
downloadpython-coveragepy-git-b8b1aaed4d6eaeb8cab1afa2449863fe2bd91313.tar.gz
Read the data file from the COVERAGE_FILE environment variable.
--HG-- branch : config
-rw-r--r--coverage/control.py12
-rw-r--r--test/test_config.py14
2 files changed, 25 insertions, 1 deletions
diff --git a/coverage/control.py b/coverage/control.py
index 77678543..eb134450 100644
--- a/coverage/control.py
+++ b/coverage/control.py
@@ -60,13 +60,23 @@ class coverage(object):
"""
from coverage import __version__
- # Build our configuration from a number of sources.
+ # Build our configuration from a number of sources:
+ # 1: defaults:
self.config = CoverageConfig()
+
+ # 2: from the coveragerc file:
if config_file:
if config_file is True:
config_file = ".coveragerc"
self.config.from_file(config_file)
+
+ # 3: from environment variables:
self.config.from_environment('COVERAGE_OPTIONS')
+ env_data_file = os.environ.get('COVERAGE_FILE')
+ if env_data_file:
+ self.config.data_file = env_data_file
+
+ # 4: from constructor arguments:
self.config.from_args(
data_file=data_file, cover_pylib=cover_pylib, timid=timid,
branch=branch
diff --git a/test/test_config.py b/test/test_config.py
index 06d43d31..a1abf51b 100644
--- a/test/test_config.py
+++ b/test/test_config.py
@@ -73,3 +73,17 @@ class ConfigTest(CoverageTest):
self.assertFalse(cov.config.timid)
self.assertFalse(cov.config.branch)
self.assertEqual(cov.config.data_file, ".mycov")
+
+ def test_data_file_from_environment(self):
+ # There's an environment variable for the data_file.
+ self.make_file(".coveragerc", """\
+ [run]
+ timid = True
+ data_file = weirdo.file
+ """)
+ self.set_environ("COVERAGE_FILE", "fromenv.dat")
+ cov = coverage.coverage()
+ self.assertEqual(cov.config.data_file, "fromenv.dat")
+ # But the constructor args override the env var.
+ cov = coverage.coverage(data_file="fromarg.dat")
+ self.assertEqual(cov.config.data_file, "fromarg.dat")