Skip to content

Commit aefde53

Browse files
committed
refactor(test): move some tests to a new file
1 parent 13e340f commit aefde53

File tree

2 files changed

+159
-145
lines changed

2 files changed

+159
-145
lines changed

tests/test_api.py

+1-145
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,7 @@
2828
from coverage.types import FilePathClasses, FilePathType, Protocol, TCovKwargs
2929

3030
from tests.coveragetest import CoverageTest, TESTS_DIR, UsingModulesMixin
31-
from tests.goldtest import contains, doesnt_contain
32-
from tests.helpers import arcz_to_arcs, assert_count_equal, assert_coverage_warnings
31+
from tests.helpers import assert_count_equal, assert_coverage_warnings
3332
from tests.helpers import change_dir, nice_file, os_sep
3433

3534
BAD_SQLITE_REGEX = r"file( is encrypted or)? is not a database"
@@ -1489,146 +1488,3 @@ def test_combine_parallel_data_keep(self) -> None:
14891488
# After combining, the .coverage file & the original combined file should still be there.
14901489
self.assert_exists(".coverage")
14911490
self.assert_file_count(".coverage.*", 2)
1492-
1493-
1494-
class ReportMapsPathsTest(CoverageTest):
1495-
"""Check that reporting implicitly maps paths."""
1496-
1497-
def make_files(self, data: str, settings: bool = False) -> None:
1498-
"""Create the test files we need for line coverage."""
1499-
src = """\
1500-
if VER == 1:
1501-
print("line 2")
1502-
if VER == 2:
1503-
print("line 4")
1504-
if VER == 3:
1505-
print("line 6")
1506-
"""
1507-
self.make_file("src/program.py", src)
1508-
self.make_file("ver1/program.py", src)
1509-
self.make_file("ver2/program.py", src)
1510-
1511-
if data == "line":
1512-
self.make_data_file(
1513-
lines={
1514-
abs_file("ver1/program.py"): [1, 2, 3, 5],
1515-
abs_file("ver2/program.py"): [1, 3, 4, 5],
1516-
}
1517-
)
1518-
else:
1519-
self.make_data_file(
1520-
arcs={
1521-
abs_file("ver1/program.py"): arcz_to_arcs(".1 12 23 35 5."),
1522-
abs_file("ver2/program.py"): arcz_to_arcs(".1 13 34 45 5."),
1523-
}
1524-
)
1525-
1526-
if settings:
1527-
self.make_file(".coveragerc", """\
1528-
[paths]
1529-
source =
1530-
src
1531-
ver1
1532-
ver2
1533-
""")
1534-
1535-
def test_map_paths_during_line_report_without_setting(self) -> None:
1536-
self.make_files(data="line")
1537-
cov = coverage.Coverage()
1538-
cov.load()
1539-
cov.report(show_missing=True)
1540-
expected = textwrap.dedent(os_sep("""\
1541-
Name Stmts Miss Cover Missing
1542-
-----------------------------------------------
1543-
ver1/program.py 6 2 67% 4, 6
1544-
ver2/program.py 6 2 67% 2, 6
1545-
-----------------------------------------------
1546-
TOTAL 12 4 67%
1547-
"""))
1548-
assert expected == self.stdout()
1549-
1550-
def test_map_paths_during_line_report(self) -> None:
1551-
self.make_files(data="line", settings=True)
1552-
cov = coverage.Coverage()
1553-
cov.load()
1554-
cov.report(show_missing=True)
1555-
expected = textwrap.dedent(os_sep("""\
1556-
Name Stmts Miss Cover Missing
1557-
----------------------------------------------
1558-
src/program.py 6 1 83% 6
1559-
----------------------------------------------
1560-
TOTAL 6 1 83%
1561-
"""))
1562-
assert expected == self.stdout()
1563-
1564-
def test_map_paths_during_branch_report_without_setting(self) -> None:
1565-
self.make_files(data="arcs")
1566-
cov = coverage.Coverage(branch=True)
1567-
cov.load()
1568-
cov.report(show_missing=True)
1569-
expected = textwrap.dedent(os_sep("""\
1570-
Name Stmts Miss Branch BrPart Cover Missing
1571-
-------------------------------------------------------------
1572-
ver1/program.py 6 2 6 3 58% 1->3, 4, 6
1573-
ver2/program.py 6 2 6 3 58% 2, 3->5, 6
1574-
-------------------------------------------------------------
1575-
TOTAL 12 4 12 6 58%
1576-
"""))
1577-
assert expected == self.stdout()
1578-
1579-
def test_map_paths_during_branch_report(self) -> None:
1580-
self.make_files(data="arcs", settings=True)
1581-
cov = coverage.Coverage(branch=True)
1582-
cov.load()
1583-
cov.report(show_missing=True)
1584-
expected = textwrap.dedent(os_sep("""\
1585-
Name Stmts Miss Branch BrPart Cover Missing
1586-
------------------------------------------------------------
1587-
src/program.py 6 1 6 1 83% 6
1588-
------------------------------------------------------------
1589-
TOTAL 6 1 6 1 83%
1590-
"""))
1591-
assert expected == self.stdout()
1592-
1593-
def test_map_paths_during_annotate(self) -> None:
1594-
self.make_files(data="line", settings=True)
1595-
cov = coverage.Coverage()
1596-
cov.load()
1597-
cov.annotate()
1598-
self.assert_exists(os_sep("src/program.py,cover"))
1599-
self.assert_doesnt_exist(os_sep("ver1/program.py,cover"))
1600-
self.assert_doesnt_exist(os_sep("ver2/program.py,cover"))
1601-
1602-
def test_map_paths_during_html_report(self) -> None:
1603-
self.make_files(data="line", settings=True)
1604-
cov = coverage.Coverage()
1605-
cov.load()
1606-
cov.html_report()
1607-
contains("htmlcov/index.html", os_sep("src/program.py"))
1608-
doesnt_contain("htmlcov/index.html", os_sep("ver1/program.py"), os_sep("ver2/program.py"))
1609-
1610-
def test_map_paths_during_xml_report(self) -> None:
1611-
self.make_files(data="line", settings=True)
1612-
cov = coverage.Coverage()
1613-
cov.load()
1614-
cov.xml_report()
1615-
contains("coverage.xml", "src/program.py")
1616-
doesnt_contain("coverage.xml", "ver1/program.py", "ver2/program.py")
1617-
1618-
def test_map_paths_during_json_report(self) -> None:
1619-
self.make_files(data="line", settings=True)
1620-
cov = coverage.Coverage()
1621-
cov.load()
1622-
cov.json_report()
1623-
def os_sepj(s: str) -> str:
1624-
return os_sep(s).replace("\\", r"\\")
1625-
contains("coverage.json", os_sepj("src/program.py"))
1626-
doesnt_contain("coverage.json", os_sepj("ver1/program.py"), os_sepj("ver2/program.py"))
1627-
1628-
def test_map_paths_during_lcov_report(self) -> None:
1629-
self.make_files(data="line", settings=True)
1630-
cov = coverage.Coverage()
1631-
cov.load()
1632-
cov.lcov_report()
1633-
contains("coverage.lcov", os_sep("src/program.py"))
1634-
doesnt_contain("coverage.lcov", os_sep("ver1/program.py"), os_sep("ver2/program.py"))

tests/test_report_common.py

+158
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0
2+
# For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt
3+
4+
"""Tests of behavior common to all reporting."""
5+
6+
from __future__ import annotations
7+
8+
import textwrap
9+
10+
import coverage
11+
from coverage.files import abs_file
12+
13+
from tests.coveragetest import CoverageTest
14+
from tests.goldtest import contains, doesnt_contain
15+
from tests.helpers import arcz_to_arcs, os_sep
16+
17+
18+
class ReportMapsPathsTest(CoverageTest):
19+
"""Check that reporting implicitly maps paths."""
20+
21+
def make_files(self, data: str, settings: bool = False) -> None:
22+
"""Create the test files we need for line coverage."""
23+
src = """\
24+
if VER == 1:
25+
print("line 2")
26+
if VER == 2:
27+
print("line 4")
28+
if VER == 3:
29+
print("line 6")
30+
"""
31+
self.make_file("src/program.py", src)
32+
self.make_file("ver1/program.py", src)
33+
self.make_file("ver2/program.py", src)
34+
35+
if data == "line":
36+
self.make_data_file(
37+
lines={
38+
abs_file("ver1/program.py"): [1, 2, 3, 5],
39+
abs_file("ver2/program.py"): [1, 3, 4, 5],
40+
}
41+
)
42+
else:
43+
self.make_data_file(
44+
arcs={
45+
abs_file("ver1/program.py"): arcz_to_arcs(".1 12 23 35 5."),
46+
abs_file("ver2/program.py"): arcz_to_arcs(".1 13 34 45 5."),
47+
}
48+
)
49+
50+
if settings:
51+
self.make_file(".coveragerc", """\
52+
[paths]
53+
source =
54+
src
55+
ver1
56+
ver2
57+
""")
58+
59+
def test_map_paths_during_line_report_without_setting(self) -> None:
60+
self.make_files(data="line")
61+
cov = coverage.Coverage()
62+
cov.load()
63+
cov.report(show_missing=True)
64+
expected = textwrap.dedent(os_sep("""\
65+
Name Stmts Miss Cover Missing
66+
-----------------------------------------------
67+
ver1/program.py 6 2 67% 4, 6
68+
ver2/program.py 6 2 67% 2, 6
69+
-----------------------------------------------
70+
TOTAL 12 4 67%
71+
"""))
72+
assert expected == self.stdout()
73+
74+
def test_map_paths_during_line_report(self) -> None:
75+
self.make_files(data="line", settings=True)
76+
cov = coverage.Coverage()
77+
cov.load()
78+
cov.report(show_missing=True)
79+
expected = textwrap.dedent(os_sep("""\
80+
Name Stmts Miss Cover Missing
81+
----------------------------------------------
82+
src/program.py 6 1 83% 6
83+
----------------------------------------------
84+
TOTAL 6 1 83%
85+
"""))
86+
assert expected == self.stdout()
87+
88+
def test_map_paths_during_branch_report_without_setting(self) -> None:
89+
self.make_files(data="arcs")
90+
cov = coverage.Coverage(branch=True)
91+
cov.load()
92+
cov.report(show_missing=True)
93+
expected = textwrap.dedent(os_sep("""\
94+
Name Stmts Miss Branch BrPart Cover Missing
95+
-------------------------------------------------------------
96+
ver1/program.py 6 2 6 3 58% 1->3, 4, 6
97+
ver2/program.py 6 2 6 3 58% 2, 3->5, 6
98+
-------------------------------------------------------------
99+
TOTAL 12 4 12 6 58%
100+
"""))
101+
assert expected == self.stdout()
102+
103+
def test_map_paths_during_branch_report(self) -> None:
104+
self.make_files(data="arcs", settings=True)
105+
cov = coverage.Coverage(branch=True)
106+
cov.load()
107+
cov.report(show_missing=True)
108+
expected = textwrap.dedent(os_sep("""\
109+
Name Stmts Miss Branch BrPart Cover Missing
110+
------------------------------------------------------------
111+
src/program.py 6 1 6 1 83% 6
112+
------------------------------------------------------------
113+
TOTAL 6 1 6 1 83%
114+
"""))
115+
assert expected == self.stdout()
116+
117+
def test_map_paths_during_annotate(self) -> None:
118+
self.make_files(data="line", settings=True)
119+
cov = coverage.Coverage()
120+
cov.load()
121+
cov.annotate()
122+
self.assert_exists(os_sep("src/program.py,cover"))
123+
self.assert_doesnt_exist(os_sep("ver1/program.py,cover"))
124+
self.assert_doesnt_exist(os_sep("ver2/program.py,cover"))
125+
126+
def test_map_paths_during_html_report(self) -> None:
127+
self.make_files(data="line", settings=True)
128+
cov = coverage.Coverage()
129+
cov.load()
130+
cov.html_report()
131+
contains("htmlcov/index.html", os_sep("src/program.py"))
132+
doesnt_contain("htmlcov/index.html", os_sep("ver1/program.py"), os_sep("ver2/program.py"))
133+
134+
def test_map_paths_during_xml_report(self) -> None:
135+
self.make_files(data="line", settings=True)
136+
cov = coverage.Coverage()
137+
cov.load()
138+
cov.xml_report()
139+
contains("coverage.xml", "src/program.py")
140+
doesnt_contain("coverage.xml", "ver1/program.py", "ver2/program.py")
141+
142+
def test_map_paths_during_json_report(self) -> None:
143+
self.make_files(data="line", settings=True)
144+
cov = coverage.Coverage()
145+
cov.load()
146+
cov.json_report()
147+
def os_sepj(s: str) -> str:
148+
return os_sep(s).replace("\\", r"\\")
149+
contains("coverage.json", os_sepj("src/program.py"))
150+
doesnt_contain("coverage.json", os_sepj("ver1/program.py"), os_sepj("ver2/program.py"))
151+
152+
def test_map_paths_during_lcov_report(self) -> None:
153+
self.make_files(data="line", settings=True)
154+
cov = coverage.Coverage()
155+
cov.load()
156+
cov.lcov_report()
157+
contains("coverage.lcov", os_sep("src/program.py"))
158+
doesnt_contain("coverage.lcov", os_sep("ver1/program.py"), os_sep("ver2/program.py"))

0 commit comments

Comments
 (0)