diff options
-rw-r--r-- | coverage/control.py | 13 | ||||
-rw-r--r-- | coverage/xmlreport.py | 9 | ||||
-rw-r--r-- | test/test_cmdline.py | 58 |
3 files changed, 43 insertions, 37 deletions
diff --git a/coverage/control.py b/coverage/control.py index a337d6bd..2c774ae6 100644 --- a/coverage/control.py +++ b/coverage/control.py @@ -102,8 +102,12 @@ class coverage(object): if self.config.omit_prefixes: self.omit_prefixes = [self.file_locator.abs_file(p) for p in self.config.omit_prefixes] + else: + self.omit_prefixes = [] if self.config.require_prefixes: self.require_prefixes = [self.file_locator.abs_file(p) for p in self.config.require_prefixes] + else: + self.require_prefixes = [] self.collector = Collector( self._should_trace, timid=self.config.timid, @@ -192,12 +196,9 @@ class coverage(object): return canonical else: return False - elif omit_prefixes: - for prefix in prefixes: - if canonical.startswith(prefix): - return False - - code_units = filtered + for prefix in self.omit_prefixes: + if canonical.startswith(prefix): + return False return canonical diff --git a/coverage/xmlreport.py b/coverage/xmlreport.py index ab44025d..4f91b1b6 100644 --- a/coverage/xmlreport.py +++ b/coverage/xmlreport.py @@ -22,12 +22,17 @@ class XmlReporter(Reporter): self.xml_out = None self.arcs = coverage.data.has_arcs() - def report(self, morfs, omit_prefixes=None, outfile=None): + def report(self, morfs, omit_prefixes=None, require_prefixes=None, outfile=None): """Generate a Cobertura-compatible XML report for `morfs`. `morfs` is a list of modules or filenames. `omit_prefixes` is a list of strings, prefixes of modules to omit from the report. + `omit_prefixes` is a list of prefixes. CodeUnits that match those prefixes + will be omitted from the list. + `require_prefixes` is a list of prefixes. Only CodeUnits that match those prefixes + will be included in the list. + You are required to pass at most one of `omit_prefixes` and `require_prefixes`. """ # Initial setup. outfile = outfile or sys.stdout @@ -52,7 +57,7 @@ class XmlReporter(Reporter): # Call xml_file for each file in the data. self.packages = {} - self.report_files(self.xml_file, morfs, omit_prefixes=omit_prefixes) + self.report_files(self.xml_file, morfs, omit_prefixes=omit_prefixes, require_prefixes=require_prefixes) lnum_tot, lhits_tot = 0, 0 bnum_tot, bhits_tot = 0, 0 diff --git a/test/test_cmdline.py b/test/test_cmdline.py index 3c2ecef3..fcb3caaf 100644 --- a/test/test_cmdline.py +++ b/test/test_cmdline.py @@ -159,31 +159,31 @@ class ClassicCmdLineTest(CmdLineTest): def testReport(self): # coverage -r [-m] [-i] [-o DIR,...] [FILE1 FILE2 ...] self.cmd_executes("-r", self.INIT_LOAD + """\ - .report(ignore_errors=None, omit_prefixes=None, morfs=[], + .report(ignore_errors=None, omit_prefixes=None, require_prefixes=None, morfs=[], show_missing=None) """) self.cmd_executes("-r -i", self.INIT_LOAD + """\ - .report(ignore_errors=True, omit_prefixes=None, morfs=[], + .report(ignore_errors=True, omit_prefixes=None, require_prefixes=None, morfs=[], show_missing=None) """) self.cmd_executes("-r -m", self.INIT_LOAD + """\ - .report(ignore_errors=None, omit_prefixes=None, morfs=[], + .report(ignore_errors=None, omit_prefixes=None, require_prefixes=None, morfs=[], show_missing=True) """) self.cmd_executes("-r -o fooey", self.INIT_LOAD + """\ - .report(ignore_errors=None, omit_prefixes=["fooey"], + .report(ignore_errors=None, omit_prefixes=["fooey"], require_prefixes=None, morfs=[], show_missing=None) """) self.cmd_executes("-r -o fooey,booey", self.INIT_LOAD + """\ - .report(ignore_errors=None, omit_prefixes=["fooey", "booey"], + .report(ignore_errors=None, omit_prefixes=["fooey", "booey"], require_prefixes=None, morfs=[], show_missing=None) """) self.cmd_executes("-r mod1", self.INIT_LOAD + """\ - .report(ignore_errors=None, omit_prefixes=None, + .report(ignore_errors=None, omit_prefixes=None, require_prefixes=None, morfs=["mod1"], show_missing=None) """) self.cmd_executes("-r mod1 mod2 mod3", self.INIT_LOAD + """\ - .report(ignore_errors=None, omit_prefixes=None, + .report(ignore_errors=None, omit_prefixes=None, require_prefixes=None, morfs=["mod1", "mod2", "mod3"], show_missing=None) """) @@ -201,31 +201,31 @@ class ClassicCmdLineTest(CmdLineTest): # coverage -a [-d DIR] [-i] [-o DIR,...] [FILE1 FILE2 ...] self.cmd_executes("-a", self.INIT_LOAD + """\ .annotate(directory=None, ignore_errors=None, - omit_prefixes=None, morfs=[]) + omit_prefixes=None, require_prefixes=None, morfs=[]) """) self.cmd_executes("-a -d dir1", self.INIT_LOAD + """\ .annotate(directory="dir1", ignore_errors=None, - omit_prefixes=None, morfs=[]) + omit_prefixes=None, require_prefixes=None, morfs=[]) """) self.cmd_executes("-a -i", self.INIT_LOAD + """\ .annotate(directory=None, ignore_errors=True, - omit_prefixes=None, morfs=[]) + omit_prefixes=None, require_prefixes=None, morfs=[]) """) self.cmd_executes("-a -o fooey", self.INIT_LOAD + """\ .annotate(directory=None, ignore_errors=None, - omit_prefixes=["fooey"], morfs=[]) + omit_prefixes=["fooey"], require_prefixes=None, morfs=[]) """) self.cmd_executes("-a -o fooey,booey", self.INIT_LOAD + """\ .annotate(directory=None, ignore_errors=None, - omit_prefixes=["fooey", "booey"], morfs=[]) + omit_prefixes=["fooey", "booey"], require_prefixes=None, morfs=[]) """) self.cmd_executes("-a mod1", self.INIT_LOAD + """\ .annotate(directory=None, ignore_errors=None, - omit_prefixes=None, morfs=["mod1"]) + omit_prefixes=None, require_prefixes=None, morfs=["mod1"]) """) self.cmd_executes("-a mod1 mod2 mod3", self.INIT_LOAD + """\ .annotate(directory=None, ignore_errors=None, - omit_prefixes=None, morfs=["mod1", "mod2", "mod3"]) + omit_prefixes=None, require_prefixes=None, morfs=["mod1", "mod2", "mod3"]) """) self.cmd_executes_same("-a", "--annotate") @@ -242,31 +242,31 @@ class ClassicCmdLineTest(CmdLineTest): # coverage -b -d DIR [-i] [-o DIR,...] [FILE1 FILE2 ...] self.cmd_executes("-b", self.INIT_LOAD + """\ .html_report(directory=None, ignore_errors=None, - omit_prefixes=None, morfs=[]) + omit_prefixes=None, require_prefixes=None, morfs=[]) """) self.cmd_executes("-b -d dir1", self.INIT_LOAD + """\ .html_report(directory="dir1", ignore_errors=None, - omit_prefixes=None, morfs=[]) + omit_prefixes=None, require_prefixes=None, morfs=[]) """) self.cmd_executes("-b -i", self.INIT_LOAD + """\ .html_report(directory=None, ignore_errors=True, - omit_prefixes=None, morfs=[]) + omit_prefixes=None, require_prefixes=None, morfs=[]) """) self.cmd_executes("-b -o fooey", self.INIT_LOAD + """\ .html_report(directory=None, ignore_errors=None, - omit_prefixes=["fooey"], morfs=[]) + omit_prefixes=["fooey"], require_prefixes=None, morfs=[]) """) self.cmd_executes("-b -o fooey,booey", self.INIT_LOAD + """\ .html_report(directory=None, ignore_errors=None, - omit_prefixes=["fooey", "booey"], morfs=[]) + omit_prefixes=["fooey", "booey"], require_prefixes=None, morfs=[]) """) self.cmd_executes("-b mod1", self.INIT_LOAD + """\ .html_report(directory=None, ignore_errors=None, - omit_prefixes=None, morfs=["mod1"]) + omit_prefixes=None, require_prefixes=None, morfs=["mod1"]) """) self.cmd_executes("-b mod1 mod2 mod3", self.INIT_LOAD + """\ .html_report(directory=None, ignore_errors=None, - omit_prefixes=None, morfs=["mod1", "mod2", "mod3"]) + omit_prefixes=None, require_prefixes=None, morfs=["mod1", "mod2", "mod3"]) """) self.cmd_executes_same("-b", "--html") @@ -471,35 +471,35 @@ class NewCmdLineTest(CmdLineTest): def testXml(self): # coverage xml [-i] [--omit DIR,...] [FILE1 FILE2 ...] self.cmd_executes("xml", self.INIT_LOAD + """\ - .xml_report(ignore_errors=None, omit_prefixes=None, morfs=[], + .xml_report(ignore_errors=None, omit_prefixes=None, require_prefixes=None, morfs=[], outfile="coverage.xml") """) self.cmd_executes("xml -i", self.INIT_LOAD + """\ - .xml_report(ignore_errors=True, omit_prefixes=None, morfs=[], + .xml_report(ignore_errors=True, omit_prefixes=None, require_prefixes=None, morfs=[], outfile="coverage.xml") """) self.cmd_executes("xml -o myxml.foo", self.INIT_LOAD + """\ - .xml_report(ignore_errors=None, omit_prefixes=None, morfs=[], + .xml_report(ignore_errors=None, omit_prefixes=None, require_prefixes=None, morfs=[], outfile="myxml.foo") """) self.cmd_executes("xml -o -", self.INIT_LOAD + """\ - .xml_report(ignore_errors=None, omit_prefixes=None, morfs=[], + .xml_report(ignore_errors=None, omit_prefixes=None, require_prefixes=None, morfs=[], outfile="-") """) self.cmd_executes("xml --omit fooey", self.INIT_LOAD + """\ - .xml_report(ignore_errors=None, omit_prefixes=["fooey"], morfs=[], + .xml_report(ignore_errors=None, omit_prefixes=["fooey"], require_prefixes=None, morfs=[], outfile="coverage.xml") """) self.cmd_executes("xml --omit fooey,booey", self.INIT_LOAD + """\ - .xml_report(ignore_errors=None, omit_prefixes=["fooey", "booey"], + .xml_report(ignore_errors=None, omit_prefixes=["fooey", "booey"], require_prefixes=None, morfs=[], outfile="coverage.xml") """) self.cmd_executes("xml mod1", self.INIT_LOAD + """\ - .xml_report(ignore_errors=None, omit_prefixes=None, morfs=["mod1"], + .xml_report(ignore_errors=None, omit_prefixes=None, require_prefixes=None, morfs=["mod1"], outfile="coverage.xml") """) self.cmd_executes("xml mod1 mod2 mod3", self.INIT_LOAD + """\ - .xml_report(ignore_errors=None, omit_prefixes=None, + .xml_report(ignore_errors=None, omit_prefixes=None, require_prefixes=None, morfs=["mod1", "mod2", "mod3"], outfile="coverage.xml") """) |