summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2023-05-14 14:10:23 -0400
committerNed Batchelder <ned@nedbatchelder.com>2023-05-14 14:10:23 -0400
commitaefde5326dde3a6a232d888a1b1b4e1202ff2b3b (patch)
tree60d43163c9574a179fbd6fa223ee73649d61e57b
parent13e340fc053fea607496db4ccc4f51e9ee5747c6 (diff)
downloadpython-coveragepy-git-aefde5326dde3a6a232d888a1b1b4e1202ff2b3b.tar.gz
refactor(test): move some tests to a new file
-rw-r--r--tests/test_api.py146
-rw-r--r--tests/test_report_common.py158
2 files changed, 159 insertions, 145 deletions
diff --git a/tests/test_api.py b/tests/test_api.py
index 596510eb..5c903d65 100644
--- a/tests/test_api.py
+++ b/tests/test_api.py
@@ -28,8 +28,7 @@ from coverage.misc import import_local_file
from coverage.types import FilePathClasses, FilePathType, Protocol, TCovKwargs
from tests.coveragetest import CoverageTest, TESTS_DIR, UsingModulesMixin
-from tests.goldtest import contains, doesnt_contain
-from tests.helpers import arcz_to_arcs, assert_count_equal, assert_coverage_warnings
+from tests.helpers import assert_count_equal, assert_coverage_warnings
from tests.helpers import change_dir, nice_file, os_sep
BAD_SQLITE_REGEX = r"file( is encrypted or)? is not a database"
@@ -1489,146 +1488,3 @@ class CombiningTest(CoverageTest):
# After combining, the .coverage file & the original combined file should still be there.
self.assert_exists(".coverage")
self.assert_file_count(".coverage.*", 2)
-
-
-class ReportMapsPathsTest(CoverageTest):
- """Check that reporting implicitly maps paths."""
-
- def make_files(self, data: str, settings: bool = False) -> None:
- """Create the test files we need for line coverage."""
- src = """\
- if VER == 1:
- print("line 2")
- if VER == 2:
- print("line 4")
- if VER == 3:
- print("line 6")
- """
- self.make_file("src/program.py", src)
- self.make_file("ver1/program.py", src)
- self.make_file("ver2/program.py", src)
-
- if data == "line":
- self.make_data_file(
- lines={
- abs_file("ver1/program.py"): [1, 2, 3, 5],
- abs_file("ver2/program.py"): [1, 3, 4, 5],
- }
- )
- else:
- self.make_data_file(
- arcs={
- abs_file("ver1/program.py"): arcz_to_arcs(".1 12 23 35 5."),
- abs_file("ver2/program.py"): arcz_to_arcs(".1 13 34 45 5."),
- }
- )
-
- if settings:
- self.make_file(".coveragerc", """\
- [paths]
- source =
- src
- ver1
- ver2
- """)
-
- def test_map_paths_during_line_report_without_setting(self) -> None:
- self.make_files(data="line")
- cov = coverage.Coverage()
- cov.load()
- cov.report(show_missing=True)
- expected = textwrap.dedent(os_sep("""\
- Name Stmts Miss Cover Missing
- -----------------------------------------------
- ver1/program.py 6 2 67% 4, 6
- ver2/program.py 6 2 67% 2, 6
- -----------------------------------------------
- TOTAL 12 4 67%
- """))
- assert expected == self.stdout()
-
- def test_map_paths_during_line_report(self) -> None:
- self.make_files(data="line", settings=True)
- cov = coverage.Coverage()
- cov.load()
- cov.report(show_missing=True)
- expected = textwrap.dedent(os_sep("""\
- Name Stmts Miss Cover Missing
- ----------------------------------------------
- src/program.py 6 1 83% 6
- ----------------------------------------------
- TOTAL 6 1 83%
- """))
- assert expected == self.stdout()
-
- def test_map_paths_during_branch_report_without_setting(self) -> None:
- self.make_files(data="arcs")
- cov = coverage.Coverage(branch=True)
- cov.load()
- cov.report(show_missing=True)
- expected = textwrap.dedent(os_sep("""\
- Name Stmts Miss Branch BrPart Cover Missing
- -------------------------------------------------------------
- ver1/program.py 6 2 6 3 58% 1->3, 4, 6
- ver2/program.py 6 2 6 3 58% 2, 3->5, 6
- -------------------------------------------------------------
- TOTAL 12 4 12 6 58%
- """))
- assert expected == self.stdout()
-
- def test_map_paths_during_branch_report(self) -> None:
- self.make_files(data="arcs", settings=True)
- cov = coverage.Coverage(branch=True)
- cov.load()
- cov.report(show_missing=True)
- expected = textwrap.dedent(os_sep("""\
- Name Stmts Miss Branch BrPart Cover Missing
- ------------------------------------------------------------
- src/program.py 6 1 6 1 83% 6
- ------------------------------------------------------------
- TOTAL 6 1 6 1 83%
- """))
- assert expected == self.stdout()
-
- def test_map_paths_during_annotate(self) -> None:
- self.make_files(data="line", settings=True)
- cov = coverage.Coverage()
- cov.load()
- cov.annotate()
- self.assert_exists(os_sep("src/program.py,cover"))
- self.assert_doesnt_exist(os_sep("ver1/program.py,cover"))
- self.assert_doesnt_exist(os_sep("ver2/program.py,cover"))
-
- def test_map_paths_during_html_report(self) -> None:
- self.make_files(data="line", settings=True)
- cov = coverage.Coverage()
- cov.load()
- cov.html_report()
- contains("htmlcov/index.html", os_sep("src/program.py"))
- doesnt_contain("htmlcov/index.html", os_sep("ver1/program.py"), os_sep("ver2/program.py"))
-
- def test_map_paths_during_xml_report(self) -> None:
- self.make_files(data="line", settings=True)
- cov = coverage.Coverage()
- cov.load()
- cov.xml_report()
- contains("coverage.xml", "src/program.py")
- doesnt_contain("coverage.xml", "ver1/program.py", "ver2/program.py")
-
- def test_map_paths_during_json_report(self) -> None:
- self.make_files(data="line", settings=True)
- cov = coverage.Coverage()
- cov.load()
- cov.json_report()
- def os_sepj(s: str) -> str:
- return os_sep(s).replace("\\", r"\\")
- contains("coverage.json", os_sepj("src/program.py"))
- doesnt_contain("coverage.json", os_sepj("ver1/program.py"), os_sepj("ver2/program.py"))
-
- def test_map_paths_during_lcov_report(self) -> None:
- self.make_files(data="line", settings=True)
- cov = coverage.Coverage()
- cov.load()
- cov.lcov_report()
- contains("coverage.lcov", os_sep("src/program.py"))
- doesnt_contain("coverage.lcov", os_sep("ver1/program.py"), os_sep("ver2/program.py"))
diff --git a/tests/test_report_common.py b/tests/test_report_common.py
new file mode 100644
index 00000000..2b20ed92
--- /dev/null
+++ b/tests/test_report_common.py
@@ -0,0 +1,158 @@
+# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
+# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
+
+"""Tests of behavior common to all reporting."""
+
+from __future__ import annotations
+
+import textwrap
+
+import coverage
+from coverage.files import abs_file
+
+from tests.coveragetest import CoverageTest
+from tests.goldtest import contains, doesnt_contain
+from tests.helpers import arcz_to_arcs, os_sep
+
+
+class ReportMapsPathsTest(CoverageTest):
+ """Check that reporting implicitly maps paths."""
+
+ def make_files(self, data: str, settings: bool = False) -> None:
+ """Create the test files we need for line coverage."""
+ src = """\
+ if VER == 1:
+ print("line 2")
+ if VER == 2:
+ print("line 4")
+ if VER == 3:
+ print("line 6")
+ """
+ self.make_file("src/program.py", src)
+ self.make_file("ver1/program.py", src)
+ self.make_file("ver2/program.py", src)
+
+ if data == "line":
+ self.make_data_file(
+ lines={
+ abs_file("ver1/program.py"): [1, 2, 3, 5],
+ abs_file("ver2/program.py"): [1, 3, 4, 5],
+ }
+ )
+ else:
+ self.make_data_file(
+ arcs={
+ abs_file("ver1/program.py"): arcz_to_arcs(".1 12 23 35 5."),
+ abs_file("ver2/program.py"): arcz_to_arcs(".1 13 34 45 5."),
+ }
+ )
+
+ if settings:
+ self.make_file(".coveragerc", """\
+ [paths]
+ source =
+ src
+ ver1
+ ver2
+ """)
+
+ def test_map_paths_during_line_report_without_setting(self) -> None:
+ self.make_files(data="line")
+ cov = coverage.Coverage()
+ cov.load()
+ cov.report(show_missing=True)
+ expected = textwrap.dedent(os_sep("""\
+ Name Stmts Miss Cover Missing
+ -----------------------------------------------
+ ver1/program.py 6 2 67% 4, 6
+ ver2/program.py 6 2 67% 2, 6
+ -----------------------------------------------
+ TOTAL 12 4 67%
+ """))
+ assert expected == self.stdout()
+
+ def test_map_paths_during_line_report(self) -> None:
+ self.make_files(data="line", settings=True)
+ cov = coverage.Coverage()
+ cov.load()
+ cov.report(show_missing=True)
+ expected = textwrap.dedent(os_sep("""\
+ Name Stmts Miss Cover Missing
+ ----------------------------------------------
+ src/program.py 6 1 83% 6
+ ----------------------------------------------
+ TOTAL 6 1 83%
+ """))
+ assert expected == self.stdout()
+
+ def test_map_paths_during_branch_report_without_setting(self) -> None:
+ self.make_files(data="arcs")
+ cov = coverage.Coverage(branch=True)
+ cov.load()
+ cov.report(show_missing=True)
+ expected = textwrap.dedent(os_sep("""\
+ Name Stmts Miss Branch BrPart Cover Missing
+ -------------------------------------------------------------
+ ver1/program.py 6 2 6 3 58% 1->3, 4, 6
+ ver2/program.py 6 2 6 3 58% 2, 3->5, 6
+ -------------------------------------------------------------
+ TOTAL 12 4 12 6 58%
+ """))
+ assert expected == self.stdout()
+
+ def test_map_paths_during_branch_report(self) -> None:
+ self.make_files(data="arcs", settings=True)
+ cov = coverage.Coverage(branch=True)
+ cov.load()
+ cov.report(show_missing=True)
+ expected = textwrap.dedent(os_sep("""\
+ Name Stmts Miss Branch BrPart Cover Missing
+ ------------------------------------------------------------
+ src/program.py 6 1 6 1 83% 6
+ ------------------------------------------------------------
+ TOTAL 6 1 6 1 83%
+ """))
+ assert expected == self.stdout()
+
+ def test_map_paths_during_annotate(self) -> None:
+ self.make_files(data="line", settings=True)
+ cov = coverage.Coverage()
+ cov.load()
+ cov.annotate()
+ self.assert_exists(os_sep("src/program.py,cover"))
+ self.assert_doesnt_exist(os_sep("ver1/program.py,cover"))
+ self.assert_doesnt_exist(os_sep("ver2/program.py,cover"))
+
+ def test_map_paths_during_html_report(self) -> None:
+ self.make_files(data="line", settings=True)
+ cov = coverage.Coverage()
+ cov.load()
+ cov.html_report()
+ contains("htmlcov/index.html", os_sep("src/program.py"))
+ doesnt_contain("htmlcov/index.html", os_sep("ver1/program.py"), os_sep("ver2/program.py"))
+
+ def test_map_paths_during_xml_report(self) -> None:
+ self.make_files(data="line", settings=True)
+ cov = coverage.Coverage()
+ cov.load()
+ cov.xml_report()
+ contains("coverage.xml", "src/program.py")
+ doesnt_contain("coverage.xml", "ver1/program.py", "ver2/program.py")
+
+ def test_map_paths_during_json_report(self) -> None:
+ self.make_files(data="line", settings=True)
+ cov = coverage.Coverage()
+ cov.load()
+ cov.json_report()
+ def os_sepj(s: str) -> str:
+ return os_sep(s).replace("\\", r"\\")
+ contains("coverage.json", os_sepj("src/program.py"))
+ doesnt_contain("coverage.json", os_sepj("ver1/program.py"), os_sepj("ver2/program.py"))
+
+ def test_map_paths_during_lcov_report(self) -> None:
+ self.make_files(data="line", settings=True)
+ cov = coverage.Coverage()
+ cov.load()
+ cov.lcov_report()
+ contains("coverage.lcov", os_sep("src/program.py"))
+ doesnt_contain("coverage.lcov", os_sep("ver1/program.py"), os_sep("ver2/program.py"))