diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2019-06-17 12:37:40 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2019-06-17 17:57:36 -0400 |
commit | 9b75b1ae769a1cf8255c4193f51af0c599c6bd4c (patch) | |
tree | 434f669fe2bca0d145c4bdc0da97ae8d73410e67 | |
parent | fa90997a1400d47414f8603df70838e07a5930cd (diff) | |
download | python-coveragepy-git-9b75b1ae769a1cf8255c4193f51af0c599c6bd4c.tar.gz |
No need to pass coverage/config separately everywhere
-rw-r--r-- | coverage/annotate.py | 6 | ||||
-rw-r--r-- | coverage/control.py | 8 | ||||
-rw-r--r-- | coverage/html.py | 6 | ||||
-rw-r--r-- | coverage/report.py | 3 | ||||
-rw-r--r-- | coverage/summary.py | 6 | ||||
-rw-r--r-- | coverage/xmlreport.py | 10 | ||||
-rw-r--r-- | tests/test_summary.py | 37 |
7 files changed, 35 insertions, 41 deletions
diff --git a/coverage/annotate.py b/coverage/annotate.py index 35b21360..999ab6e5 100644 --- a/coverage/annotate.py +++ b/coverage/annotate.py @@ -36,9 +36,9 @@ class AnnotateReporter(object): """ - def __init__(self, coverage, config): + def __init__(self, coverage): self.coverage = coverage - self.config = config + self.config = self.coverage.config self.directory = None blank_re = re.compile(r"\s*(#|$)") @@ -52,7 +52,7 @@ class AnnotateReporter(object): """ self.directory = directory self.coverage.get_data() - for fr, analysis in get_analysis_to_report(self.coverage, self.config, morfs): + for fr, analysis in get_analysis_to_report(self.coverage, morfs): self.annotate_file(fr, analysis) def annotate_file(self, fr, analysis): diff --git a/coverage/control.py b/coverage/control.py index 4cd1adad..c398f2a7 100644 --- a/coverage/control.py +++ b/coverage/control.py @@ -762,7 +762,7 @@ class Coverage(object): show_missing=show_missing, skip_covered=skip_covered, query_contexts=contexts, ) - reporter = SummaryReporter(self, self.config) + reporter = SummaryReporter(self) return reporter.report(morfs, outfile=file) def annotate( @@ -783,7 +783,7 @@ class Coverage(object): ignore_errors=ignore_errors, report_omit=omit, report_include=include, query_contexts=contexts, ) - reporter = AnnotateReporter(self, self.config) + reporter = AnnotateReporter(self) reporter.report(morfs, directory=directory) def html_report(self, morfs=None, directory=None, ignore_errors=None, @@ -817,7 +817,7 @@ class Coverage(object): html_dir=directory, extra_css=extra_css, html_title=title, skip_covered=skip_covered, show_contexts=show_contexts, query_contexts=contexts, ) - reporter = HtmlReporter(self, self.config) + reporter = HtmlReporter(self) return reporter.report(morfs) def xml_report( @@ -857,7 +857,7 @@ class Coverage(object): outfile = open(self.config.xml_output, "w", **open_kwargs) file_to_close = outfile try: - reporter = XmlReporter(self, self.config) + reporter = XmlReporter(self) return reporter.report(morfs, outfile=outfile) except CoverageException: delete_file = True diff --git a/coverage/html.py b/coverage/html.py index 89f56a3e..b1ae29e6 100644 --- a/coverage/html.py +++ b/coverage/html.py @@ -97,9 +97,9 @@ class HtmlReporter(object): c_mis = "mis" c_par = "par run hide_run" - def __init__(self, cov, config): + def __init__(self, cov): self.coverage = cov - self.config = config + self.config =self.coverage.config self.directory = None title = self.config.html_title if env.PY2: @@ -157,7 +157,7 @@ class HtmlReporter(object): # Process all the files. self.coverage.get_data().set_query_contexts(self.config.query_contexts) - for fr, analysis in get_analysis_to_report(self.coverage, self.config, morfs): + for fr, analysis in get_analysis_to_report(self.coverage, morfs): self.html_file(fr, analysis) if not self.all_files_nums: diff --git a/coverage/report.py b/coverage/report.py index 2c2e0198..9a740290 100644 --- a/coverage/report.py +++ b/coverage/report.py @@ -7,7 +7,7 @@ from coverage.files import prep_patterns, FnmatchMatcher from coverage.misc import CoverageException, NoSource, NotPython -def get_analysis_to_report(coverage, config, morfs): +def get_analysis_to_report(coverage, morfs): """Get the files to report on. For each morf in `morfs`, if it should be reported on (based on the omit @@ -16,6 +16,7 @@ def get_analysis_to_report(coverage, config, morfs): """ file_reporters = coverage._get_file_reporters(morfs) + config = coverage.config if config.report_include: matcher = FnmatchMatcher(prep_patterns(config.report_include)) diff --git a/coverage/summary.py b/coverage/summary.py index 6e711089..419051b0 100644 --- a/coverage/summary.py +++ b/coverage/summary.py @@ -14,9 +14,9 @@ from coverage.misc import NotPython, CoverageException, output_encoding class SummaryReporter(object): """A reporter for writing the summary report.""" - def __init__(self, coverage, config): + def __init__(self, coverage): self.coverage = coverage - self.config = config + self.config = self.coverage.config self.branches = coverage.get_data().has_arcs() self.outfile = None self.fr_analysis = [] @@ -41,7 +41,7 @@ class SummaryReporter(object): self.outfile = outfile or sys.stdout self.coverage.get_data().set_query_contexts(self.config.query_contexts) - for fr, analysis in get_analysis_to_report(self.coverage, self.config, morfs): + for fr, analysis in get_analysis_to_report(self.coverage, morfs): self.report_one_file(fr, analysis) # Prepare the formatting strings, header, and column sorting. diff --git a/coverage/xmlreport.py b/coverage/xmlreport.py index a414ed40..07967719 100644 --- a/coverage/xmlreport.py +++ b/coverage/xmlreport.py @@ -33,13 +33,13 @@ def rate(hit, num): class XmlReporter(object): """A reporter for writing Cobertura-style XML coverage results.""" - def __init__(self, coverage, config): + def __init__(self, coverage): self.coverage = coverage - self.config = config + self.config = self.coverage.config self.source_paths = set() - if config.source: - for src in config.source: + if self.config.source: + for src in self.config.source: if os.path.exists(src): self.source_paths.add(files.canonical_filename(src)) self.packages = {} @@ -72,7 +72,7 @@ class XmlReporter(object): xcoverage.appendChild(self.xml_out.createComment(" Based on %s " % DTD_URL)) # Call xml_file for each file in the data. - for fr, analysis in get_analysis_to_report(self.coverage, self.config, morfs): + for fr, analysis in get_analysis_to_report(self.coverage, morfs): self.xml_file(fr, analysis) xsources = self.xml_out.createElement("sources") diff --git a/tests/test_summary.py b/tests/test_summary.py index f7824ce4..b25c7764 100644 --- a/tests/test_summary.py +++ b/tests/test_summary.py @@ -13,7 +13,6 @@ import re import coverage from coverage import env from coverage.backward import StringIO -from coverage.config import CoverageConfig from coverage.control import Coverage from coverage.data import CoverageData from coverage.misc import CoverageException, output_encoding @@ -793,8 +792,11 @@ class TestSummaryReporterConfiguration(CoverageTest): source += " a = 2\n" * dont_run self.make_file(filename, source) - def get_summary_text(self, options): - """Get text output from the SummaryReporter.""" + def get_summary_text(self, *options): + """Get text output from the SummaryReporter. + + The arguments are tuples: (name, value) for Coverage.set_option. + """ self.make_rigged_file("file1.py", 339, 155) self.make_rigged_file("file2.py", 13, 3) self.make_rigged_file("file3.py", 234, 228) @@ -804,7 +806,9 @@ class TestSummaryReporterConfiguration(CoverageTest): cov.start() import doit # pragma: nested # pylint: disable=import-error, unused-import cov.stop() # pragma: nested - printer = SummaryReporter(cov, options) + for name, value in options: + cov.set_option(name, value) + printer = SummaryReporter(cov) destination = StringIO() printer.report([], destination) return destination.getvalue() @@ -813,7 +817,7 @@ class TestSummaryReporterConfiguration(CoverageTest): # We use our own test files as test data. Check that our assumptions # about them are still valid. We want the three columns of numbers to # sort in three different orders. - report = self.get_summary_text(CoverageConfig()) + report = self.get_summary_text() print(report) # Name Stmts Miss Cover # -------------------------------------------- @@ -837,16 +841,13 @@ class TestSummaryReporterConfiguration(CoverageTest): def test_defaults(self): """Run the report with no configuration options.""" - opts = CoverageConfig() - report = self.get_summary_text(opts) + report = self.get_summary_text() self.assertNotIn('Missing', report) self.assertNotIn('Branch', report) def test_print_missing(self): """Run the report printing the missing lines.""" - opts = CoverageConfig() - opts.from_args(show_missing=True) - report = self.get_summary_text(opts) + report = self.get_summary_text(('report:show_missing', True)) self.assertIn('Missing', report) self.assertNotIn('Branch', report) @@ -860,29 +861,21 @@ class TestSummaryReporterConfiguration(CoverageTest): def test_sort_report_by_stmts(self): # Sort the text report by the Stmts column. - opts = CoverageConfig() - opts.from_args(sort='Stmts') - report = self.get_summary_text(opts) + report = self.get_summary_text(('report:sort', 'Stmts')) self.assert_ordering(report, "test_backward.py", "test_coverage.py", "test_api.py") def test_sort_report_by_missing(self): # Sort the text report by the Missing column. - opts = CoverageConfig() - opts.from_args(sort='Miss') - report = self.get_summary_text(opts) + report = self.get_summary_text(('report:sort', 'Miss')) self.assert_ordering(report, "test_backward.py", "test_api.py", "test_coverage.py") def test_sort_report_by_cover(self): # Sort the text report by the Cover column. - opts = CoverageConfig() - opts.from_args(sort='Cover') - report = self.get_summary_text(opts) + report = self.get_summary_text(('report:sort', 'Cover')) self.assert_ordering(report, "test_coverage.py", "test_api.py", "test_backward.py") def test_sort_report_by_invalid_option(self): # Sort the text report by a nonsense column. - opts = CoverageConfig() - opts.from_args(sort='Xyzzy') msg = "Invalid sorting option: 'Xyzzy'" with self.assertRaisesRegex(CoverageException, msg): - self.get_summary_text(opts) + self.get_summary_text(('report:sort', 'Xyzzy')) |