diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2011-04-25 22:00:36 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2011-04-25 22:00:36 -0400 |
commit | bbf745190a4efc6a040c656f1288ff67114edc8f (patch) | |
tree | ff124eb55d0e91b99a66e04851def600bbebcbb4 | |
parent | 4adf9b46ce958c33aaede3bb1b9521cea6b1eb53 (diff) | |
download | python-coveragepy-git-bbf745190a4efc6a040c656f1288ff67114edc8f.tar.gz |
Since people make this mistake, and it's mysterious: accept a single string for omit and include.
-rw-r--r-- | CHANGES.txt | 3 | ||||
-rw-r--r-- | coverage/control.py | 7 | ||||
-rw-r--r-- | test/test_api.py | 18 |
3 files changed, 27 insertions, 1 deletions
diff --git a/CHANGES.txt b/CHANGES.txt index 45dc1dc5..7d71d019 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -19,6 +19,9 @@ Version 3.5 If it does not, it is interpreted relative to the current directory. Closes `issue 121`. +- The ``coverage()`` constructor accepts single strings for the ``omit=`` and + ``include=`` arguments, adapting to a common error in programmatic use. + - Modules can now be run directly using ``coverage run -m modulename``, to mirror Python's ``-m`` flag. Closes `issue 95_`, thanks, Brandon Rhodes. diff --git a/coverage/control.py b/coverage/control.py index dd656616..cee073e4 100644 --- a/coverage/control.py +++ b/coverage/control.py @@ -64,7 +64,8 @@ class coverage(object): measured. `include` and `omit` are lists of filename patterns. Files that match - `include` will be measured, files that match `omit` will not. + `include` will be measured, files that match `omit` will not. Each + will also accept a single string argument. """ from coverage import __version__ @@ -95,6 +96,10 @@ class coverage(object): self.config.data_file = env_data_file # 4: from constructor arguments: + if isinstance(omit, string_class): + omit = [omit] + if isinstance(include, string_class): + include = [include] self.config.from_args( data_file=data_file, cover_pylib=cover_pylib, timid=timid, branch=branch, parallel=bool_or_none(data_suffix), diff --git a/test/test_api.py b/test/test_api.py index 31d8988b..0a0aabfd 100644 --- a/test/test_api.py +++ b/test/test_api.py @@ -388,6 +388,15 @@ class SourceOmitIncludeTest(CoverageTest): "p1b.py p1c.py p2b.py otherb.py osb.py" ) + def test_include_as_string(self): + lines = self.coverage_usepkgs_summary(include="*a.py") + self.filenames_in_summary(lines, + "p1a.py p2a.py othera.py osa.py" + ) + self.filenames_not_in_summary(lines, + "p1b.py p1c.py p2b.py otherb.py osb.py" + ) + def test_omit(self): lines = self.coverage_usepkgs_summary(omit=["*/p1a.py"]) self.filenames_in_summary(lines, @@ -406,6 +415,15 @@ class SourceOmitIncludeTest(CoverageTest): "p1a.py p1c.py p2a.py othera.py osa.py" ) + def test_omit_as_string(self): + lines = self.coverage_usepkgs_summary(omit="*a.py") + self.filenames_in_summary(lines, + "p1b.py p2b.py otherb.py osb.py" + ) + self.filenames_not_in_summary(lines, + "p1a.py p1c.py p2a.py othera.py osa.py" + ) + def test_omit_and_include(self): lines = self.coverage_usepkgs_summary( include=["*/p1*"], omit=["*/p1a.py"] |