Skip to content

Commit 0bcb2cb

Browse files
committed
test: a sorted_lines helper
1 parent bf73b37 commit 0bcb2cb

File tree

6 files changed

+26
-19
lines changed

6 files changed

+26
-19
lines changed

coverage/data.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def add_data_to_hash(data: CoverageData, filename: str, hasher: Hasher) -> None:
5656
if data.has_arcs():
5757
hasher.update(sorted(data.arcs(filename) or []))
5858
else:
59-
hasher.update(sorted(data.lines(filename) or []))
59+
hasher.update(sorted_lines(data, filename))
6060
hasher.update(data.file_tracer(filename))
6161

6262

@@ -200,3 +200,9 @@ def debug_data_file(filename: str) -> None:
200200
if plugin:
201201
line += f" [{plugin}]"
202202
print(line)
203+
204+
205+
def sorted_lines(data: CoverageData, filename: str) -> List[int]:
206+
"""Get the sorted lines for a file, for tests."""
207+
lines = data.lines(filename)
208+
return sorted(lines or [])

tests/test_api.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
import coverage
2121
from coverage import Coverage, env
22-
from coverage.data import line_counts
22+
from coverage.data import line_counts, sorted_lines
2323
from coverage.exceptions import CoverageException, DataError, NoDataError, NoSource
2424
from coverage.files import abs_file, relative_filename
2525
from coverage.misc import import_local_file
@@ -655,9 +655,9 @@ def test_switch_context_testrunner(self) -> None:
655655
suite_filename = filenames['testsuite.py']
656656

657657
data.set_query_context("multiply_six")
658-
assert [2, 8] == sorted(data.lines(suite_filename))
658+
assert [2, 8] == sorted_lines(data, suite_filename)
659659
data.set_query_context("multiply_zero")
660-
assert [2, 5] == sorted(data.lines(suite_filename))
660+
assert [2, 5] == sorted_lines(data, suite_filename)
661661

662662
def test_switch_context_with_static(self) -> None:
663663
# This test simulates a coverage-aware test runner,
@@ -694,9 +694,9 @@ def test_switch_context_with_static(self) -> None:
694694
suite_filename = filenames['testsuite.py']
695695

696696
data.set_query_context("mysuite|multiply_six")
697-
assert [2, 8] == sorted(data.lines(suite_filename))
697+
assert [2, 8] == sorted_lines(data, suite_filename)
698698
data.set_query_context("mysuite|multiply_zero")
699-
assert [2, 5] == sorted(data.lines(suite_filename))
699+
assert [2, 5] == sorted_lines(data, suite_filename)
700700

701701
def test_dynamic_context_conflict(self) -> None:
702702
cov = coverage.Coverage(source=["."])

tests/test_arcs.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
import coverage
1212
from coverage import env
13+
from coverage.data import sorted_lines
1314
from coverage.files import abs_file
1415

1516

@@ -2079,5 +2080,5 @@ def fun1(x):
20792080
self.start_import_stop(cov, "fun1")
20802081

20812082
data = cov.get_data()
2082-
fun1_lines = data.lines(abs_file("fun1.py"))
2083+
fun1_lines = sorted_lines(data, abs_file("fun1.py"))
20832084
assert_count_equal(fun1_lines, [1, 2, 5])

tests/test_context.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
import coverage
1111
from coverage.context import qualname_from_frame
12-
from coverage.data import CoverageData
12+
from coverage.data import CoverageData, sorted_lines
1313

1414
from tests.coveragetest import CoverageTest
1515
from tests.helpers import assert_count_equal
@@ -165,7 +165,7 @@ def test_dynamic_alone(self):
165165

166166
def assert_context_lines(context, lines):
167167
data.set_query_context(context)
168-
assert_count_equal(lines, data.lines(fname))
168+
assert_count_equal(lines, sorted_lines(data, fname))
169169

170170
assert_context_lines("", self.OUTER_LINES)
171171
assert_context_lines("two_tests.test_one", self.TEST_ONE_LINES)
@@ -187,7 +187,7 @@ def test_static_and_dynamic(self):
187187

188188
def assert_context_lines(context, lines):
189189
data.set_query_context(context)
190-
assert_count_equal(lines, data.lines(fname))
190+
assert_count_equal(lines, sorted_lines(data, fname))
191191

192192
assert_context_lines("stat", self.OUTER_LINES)
193193
assert_context_lines("stat|two_tests.test_one", self.TEST_ONE_LINES)

tests/test_oddball.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
import coverage
1414
from coverage import env
15+
from coverage.data import sorted_lines
1516
from coverage.files import abs_file
1617
from coverage.misc import import_local_file
1718

@@ -383,8 +384,7 @@ def doit(calls):
383384
data = cov.get_data()
384385
for callname in callnames:
385386
filename = callname + ".py"
386-
lines = data.lines(abs_file(filename))
387-
clean_lines[filename] = sorted(lines)
387+
clean_lines[filename] = sorted_lines(data, abs_file(filename))
388388

389389
assert clean_lines == lines_expected
390390

@@ -427,7 +427,7 @@ def return_arg_or_void(arg):
427427
self.start_import_stop(cov, "the_doctest")
428428
data = cov.get_data()
429429
assert len(data.measured_files()) == 1
430-
lines = data.lines(data.measured_files().pop())
430+
lines = sorted_lines(data, data.measured_files().pop())
431431
assert lines == [1, 3, 18, 19, 21, 23, 24]
432432

433433

tests/test_plugins.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import coverage
1515
from coverage import env
1616
from coverage.control import Plugins
17-
from coverage.data import line_counts
17+
from coverage.data import line_counts, sorted_lines
1818
from coverage.exceptions import CoverageWarning, NoSource, PluginError
1919
from coverage.misc import import_local_file
2020

@@ -1047,11 +1047,11 @@ def test_plugin_standalone(self):
10471047
expected = ['', 'doctest:HTML_TAG', 'test:HTML_TAG', 'test:RENDERERS']
10481048
assert expected == sorted(data.measured_contexts())
10491049
data.set_query_context("doctest:HTML_TAG")
1050-
assert [2] == data.lines(filenames['rendering.py'])
1050+
assert [2] == sorted_lines(data, filenames['rendering.py'])
10511051
data.set_query_context("test:HTML_TAG")
1052-
assert [2] == data.lines(filenames['rendering.py'])
1052+
assert [2] == sorted_lines(data, filenames['rendering.py'])
10531053
data.set_query_context("test:RENDERERS")
1054-
assert [2, 5, 8, 11] == sorted(data.lines(filenames['rendering.py']))
1054+
assert [2, 5, 8, 11] == sorted_lines(data, filenames['rendering.py'])
10551055

10561056
def test_static_context(self):
10571057
self.make_plugin_capitalized_testnames('plugin_tests.py')
@@ -1101,7 +1101,7 @@ def test_plugin_with_test_function(self):
11011101

11021102
def assert_context_lines(context, lines):
11031103
data.set_query_context(context)
1104-
assert lines == sorted(data.lines(filenames['rendering.py']))
1104+
assert lines == sorted_lines(data, filenames['rendering.py'])
11051105

11061106
assert_context_lines("doctest:HTML_TAG", [2])
11071107
assert_context_lines("testsuite.test_html_tag", [2])
@@ -1139,7 +1139,7 @@ def test_multiple_plugins(self):
11391139

11401140
def assert_context_lines(context, lines):
11411141
data.set_query_context(context)
1142-
assert lines == sorted(data.lines(filenames['rendering.py']))
1142+
assert lines == sorted_lines(data, filenames['rendering.py'])
11431143

11441144
assert_context_lines("test:HTML_TAG", [2])
11451145
assert_context_lines("test:RENDERERS", [2, 5, 8, 11])

0 commit comments

Comments
 (0)