summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2009-11-28 17:30:59 -0500
committerNed Batchelder <ned@nedbatchelder.com>2009-11-28 17:30:59 -0500
commit49ede2bdf54a12e4eaa9472785cc5544040c077a (patch)
tree47a85e29d5b3232c777173df0fc494987c66516f
parentc975721a9cea8716849b1f01a6007d3c3dd3a5fa (diff)
downloadpython-coveragepy-git-49ede2bdf54a12e4eaa9472785cc5544040c077a.tar.gz
Test the config file support.
--HG-- branch : config
-rw-r--r--coverage/backward.py7
-rw-r--r--coverage/config.py5
-rw-r--r--coverage/control.py2
-rw-r--r--test/test_config.py63
4 files changed, 74 insertions, 3 deletions
diff --git a/coverage/backward.py b/coverage/backward.py
index 66cfbb96..624daa2c 100644
--- a/coverage/backward.py
+++ b/coverage/backward.py
@@ -70,3 +70,10 @@ def exec_function(source, filename, global_map):
""",
"<exec_function>", "exec"
))
+
+# ConfigParser was renamed to the more-standard configparser
+
+try:
+ import configparser
+except ImportError:
+ import ConfigParser as configparser
diff --git a/coverage/config.py b/coverage/config.py
index 0596cc04..e95b74eb 100644
--- a/coverage/config.py
+++ b/coverage/config.py
@@ -1,6 +1,7 @@
"""Config file for coverage.py"""
-import ConfigParser, os
+import os
+from coverage.backward import configparser # pylint: disable-msg=W0622
class CoverageConfig(object):
@@ -25,7 +26,7 @@ class CoverageConfig(object):
setattr(self, k, v)
def from_file(self, *files):
- cp = ConfigParser.RawConfigParser()
+ cp = configparser.RawConfigParser()
cp.read(files)
if cp.has_option('run', 'timid'):
diff --git a/coverage/control.py b/coverage/control.py
index f947816b..121f52b7 100644
--- a/coverage/control.py
+++ b/coverage/control.py
@@ -3,7 +3,7 @@
import os, socket
from coverage.annotate import AnnotateReporter
-from coverage.backward import string_class # pylint: disable-msg=W0622
+from coverage.backward import string_class
from coverage.codeunit import code_unit_factory, CodeUnit
from coverage.collector import Collector
from coverage.config import CoverageConfig
diff --git a/test/test_config.py b/test/test_config.py
new file mode 100644
index 00000000..4206fa98
--- /dev/null
+++ b/test/test_config.py
@@ -0,0 +1,63 @@
+"""Test the config file handling for coverage.py"""
+
+import os, sys
+import coverage
+
+sys.path.insert(0, os.path.split(__file__)[0]) # Force relative import for Py3k
+from coveragetest import CoverageTest
+
+
+class ConfigTest(CoverageTest):
+ """Tests of the config file support."""
+
+ def test_default_config(self):
+ # Just constructing a coverage() object gets the right defaults.
+ cov = coverage.coverage()
+ self.assertFalse(cov.config.timid)
+ self.assertFalse(cov.config.branch)
+
+ def test_arguments(self):
+ # Arguments to the constructor are applied to the configuation.
+ cov = coverage.coverage(timid=True)
+ self.assert_(cov.config.timid)
+ self.assertFalse(cov.config.branch)
+
+ def test_config_file(self):
+ # A .coveragerc file will be read into the configuration.
+ self.make_file(".coveragerc", """\
+ [run]
+ timid = True
+ """)
+ cov = coverage.coverage()
+ self.assert_(cov.config.timid)
+ self.assertFalse(cov.config.branch)
+
+ def test_named_config_file(self):
+ # You can name the config file what you like.
+ self.make_file("my_cov.ini", """\
+ [run]
+ timid = True
+ """)
+ cov = coverage.coverage(config_file="my_cov.ini")
+ self.assert_(cov.config.timid)
+ self.assertFalse(cov.config.branch)
+
+ def test_ignored_config_file(self):
+ # You can disable reading the .coveragerc file.
+ self.make_file(".coveragerc", """\
+ [run]
+ timid = True
+ """)
+ cov = coverage.coverage(config_file=False)
+ self.assertFalse(cov.config.timid)
+ self.assertFalse(cov.config.branch)
+
+ def test_config_file_then_args(self):
+ # The arguments override the .coveragerc file.
+ self.make_file(".coveragerc", """\
+ [run]
+ timid = True
+ """)
+ cov = coverage.coverage(timid=False)
+ self.assertFalse(cov.config.timid)
+ self.assertFalse(cov.config.branch)