From 93c9ca9f1b2e5d0b45dbf4b82c77aaf05b458bac Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Tue, 26 Oct 2021 19:07:03 -0400 Subject: feat: xml and json say what they are doing, and -q quiets everything. #1254 --- tests/test_cmdline.py | 41 +++++++++++++++++++++++++++++++++++++++++ tests/test_concurrency.py | 9 ++------- tests/test_plugins.py | 5 ++--- tests/test_process.py | 4 ++-- tests/test_report.py | 16 ++++++++++++---- 5 files changed, 59 insertions(+), 16 deletions(-) (limited to 'tests') diff --git a/tests/test_cmdline.py b/tests/test_cmdline.py index b0716e6d..9e987760 100644 --- a/tests/test_cmdline.py +++ b/tests/test_cmdline.py @@ -234,6 +234,17 @@ class CmdLineTest(BaseCmdLineTest): cov.combine(None, strict=True, keep=False) cov.save() """) + # coverage combine quietly + self.cmd_executes("combine -q", """\ + cov = Coverage(messages=False) + cov.combine(None, strict=True, keep=False) + cov.save() + """) + self.cmd_executes("combine --quiet", """\ + cov = Coverage(messages=False) + cov.combine(None, strict=True, keep=False) + cov.save() + """) def test_combine_doesnt_confuse_options_with_args(self): # https://github.com/nedbat/coveragepy/issues/385 @@ -335,6 +346,16 @@ class CmdLineTest(BaseCmdLineTest): cov.load() cov.html_report(title='Hello_there') """) + self.cmd_executes("html -q", """\ + cov = Coverage(messages=False) + cov.load() + cov.html_report() + """) + self.cmd_executes("html --quiet", """\ + cov = Coverage(messages=False) + cov.load() + cov.html_report() + """) def test_json(self): # coverage json [-i] [--omit DIR,...] [FILE1 FILE2 ...] @@ -388,6 +409,16 @@ class CmdLineTest(BaseCmdLineTest): cov.load() cov.json_report(morfs=["mod1", "mod2", "mod3"]) """) + self.cmd_executes("json -q", """\ + cov = Coverage(messages=False) + cov.load() + cov.json_report() + """) + self.cmd_executes("json --quiet", """\ + cov = Coverage(messages=False) + cov.load() + cov.json_report() + """) def test_report(self): # coverage report [-m] [-i] [-o DIR,...] [FILE1 FILE2 ...] @@ -753,6 +784,16 @@ class CmdLineTest(BaseCmdLineTest): cov.load() cov.xml_report(morfs=["mod1", "mod2", "mod3"]) """) + self.cmd_executes("xml -q", """\ + cov = Coverage(messages=False) + cov.load() + cov.xml_report() + """) + self.cmd_executes("xml --quiet", """\ + cov = Coverage(messages=False) + cov.load() + cov.xml_report() + """) def test_no_arguments_at_all(self): self.cmd_help("", topic="minimum_help", ret=OK) diff --git a/tests/test_concurrency.py b/tests/test_concurrency.py index 696b12eb..c39b0163 100644 --- a/tests/test_concurrency.py +++ b/tests/test_concurrency.py @@ -450,13 +450,8 @@ class MultiprocessingTest(CoverageTest): out = self.run_command(f"coverage run --rcfile=multi.rc multi.py {start_method}") assert out.rstrip() == expected_out - out = self.run_command("coverage combine") - out_lines = out.splitlines() - assert len(out_lines) == nprocs + 1 - assert all( - re.fullmatch(r"Combined data file \.coverage\..*\.\d+\.\d+", line) - for line in out_lines - ) + out = self.run_command("coverage combine -q") # sneak in a test of -q + assert out == "" out = self.run_command("coverage report -m") last_line = self.squeezed_lines(out)[-1] diff --git a/tests/test_plugins.py b/tests/test_plugins.py index ecc464cc..17c7ba44 100644 --- a/tests/test_plugins.py +++ b/tests/test_plugins.py @@ -6,7 +6,6 @@ import inspect import io import os.path -import re from xml.etree import ElementTree import pytest @@ -256,8 +255,8 @@ class PluginTest(CoverageTest): out = self.run_command("coverage run main_file.py") assert out == "MAIN\n" - out = self.run_command("coverage html") - assert re.fullmatch(r"Wrote HTML report to htmlcov[/\\]index.html\n", out) + out = self.run_command("coverage html -q") # sneak in a test of -q + assert out == "" @pytest.mark.skipif(env.C_TRACER, reason="This test is only about PyTracer.") diff --git a/tests/test_process.py b/tests/test_process.py index 10312232..65a6e75d 100644 --- a/tests/test_process.py +++ b/tests/test_process.py @@ -1325,7 +1325,7 @@ class UnicodeFilePathsTest(CoverageTest): # The XML report is always UTF8-encoded. out = self.run_command("coverage xml") - assert out == "" + assert out == "Wrote XML report to coverage.xml\n" with open("coverage.xml", "rb") as xmlf: xml = xmlf.read() assert ' filename="h\xe2t.py"'.encode() in xml @@ -1358,7 +1358,7 @@ class UnicodeFilePathsTest(CoverageTest): assert expected % os.sep in index # The XML report is always UTF8-encoded. - out = self.run_command("coverage xml") + out = self.run_command("coverage xml -q") assert out == "" with open("coverage.xml", "rb") as xmlf: xml = xmlf.read() diff --git a/tests/test_report.py b/tests/test_report.py index 1a9dd179..7d6f55af 100644 --- a/tests/test_report.py +++ b/tests/test_report.py @@ -13,6 +13,8 @@ from tests.coveragetest import CoverageTest class FakeReporter: """A fake implementation of a one-file reporter.""" + report_type = "fake report file" + def __init__(self, output="", error=False): self.output = output self.error = error @@ -31,20 +33,26 @@ class RenderReportTest(CoverageTest): def test_stdout(self): fake = FakeReporter(output="Hello!\n") - render_report("-", fake, [pytest, "coverage"]) + msgs = [] + render_report("-", fake, [pytest, "coverage"], msgs.append) assert fake.morfs == [pytest, "coverage"] assert self.stdout() == "Hello!\n" + assert msgs == [] def test_file(self): fake = FakeReporter(output="Gréètings!\n") - render_report("output.txt", fake, []) + msgs = [] + render_report("output.txt", fake, [], msgs.append) assert self.stdout() == "" with open("output.txt", "rb") as f: - assert f.read() == b"Gr\xc3\xa9\xc3\xa8tings!\n" + assert f.read().rstrip() == b"Gr\xc3\xa9\xc3\xa8tings!" + assert msgs == ["Wrote fake report file to output.txt"] def test_exception(self): fake = FakeReporter(error=True) + msgs = [] with pytest.raises(CoverageException, match="You asked for it!"): - render_report("output.txt", fake, []) + render_report("output.txt", fake, [], msgs.append) assert self.stdout() == "" self.assert_doesnt_exist("output.txt") + assert msgs == [] -- cgit v1.2.1