diff options
-rw-r--r-- | coverage/data.py | 8 | ||||
-rw-r--r-- | tests/test_api.py | 10 | ||||
-rw-r--r-- | tests/test_arcs.py | 3 | ||||
-rw-r--r-- | tests/test_context.py | 6 | ||||
-rw-r--r-- | tests/test_oddball.py | 6 | ||||
-rw-r--r-- | tests/test_plugins.py | 12 |
6 files changed, 26 insertions, 19 deletions
diff --git a/coverage/data.py b/coverage/data.py index 986e3197..16fb9a8a 100644 --- a/coverage/data.py +++ b/coverage/data.py @@ -56,7 +56,7 @@ def add_data_to_hash(data: CoverageData, filename: str, hasher: Hasher) -> None: if data.has_arcs(): hasher.update(sorted(data.arcs(filename) or [])) else: - hasher.update(sorted(data.lines(filename) or [])) + hasher.update(sorted_lines(data, filename)) hasher.update(data.file_tracer(filename)) @@ -200,3 +200,9 @@ def debug_data_file(filename: str) -> None: if plugin: line += f" [{plugin}]" print(line) + + +def sorted_lines(data: CoverageData, filename: str) -> List[int]: + """Get the sorted lines for a file, for tests.""" + lines = data.lines(filename) + return sorted(lines or []) diff --git a/tests/test_api.py b/tests/test_api.py index 01132053..d979c182 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -19,7 +19,7 @@ import pytest import coverage from coverage import Coverage, env -from coverage.data import line_counts +from coverage.data import line_counts, sorted_lines from coverage.exceptions import CoverageException, DataError, NoDataError, NoSource from coverage.files import abs_file, relative_filename from coverage.misc import import_local_file @@ -655,9 +655,9 @@ class ApiTest(CoverageTest): suite_filename = filenames['testsuite.py'] data.set_query_context("multiply_six") - assert [2, 8] == sorted(data.lines(suite_filename)) + assert [2, 8] == sorted_lines(data, suite_filename) data.set_query_context("multiply_zero") - assert [2, 5] == sorted(data.lines(suite_filename)) + assert [2, 5] == sorted_lines(data, suite_filename) def test_switch_context_with_static(self) -> None: # This test simulates a coverage-aware test runner, @@ -694,9 +694,9 @@ class ApiTest(CoverageTest): suite_filename = filenames['testsuite.py'] data.set_query_context("mysuite|multiply_six") - assert [2, 8] == sorted(data.lines(suite_filename)) + assert [2, 8] == sorted_lines(data, suite_filename) data.set_query_context("mysuite|multiply_zero") - assert [2, 5] == sorted(data.lines(suite_filename)) + assert [2, 5] == sorted_lines(data, suite_filename) def test_dynamic_context_conflict(self) -> None: cov = coverage.Coverage(source=["."]) diff --git a/tests/test_arcs.py b/tests/test_arcs.py index 4c68abba..02592918 100644 --- a/tests/test_arcs.py +++ b/tests/test_arcs.py @@ -10,6 +10,7 @@ from tests.helpers import assert_count_equal, xfail_pypy38 import coverage from coverage import env +from coverage.data import sorted_lines from coverage.files import abs_file @@ -2079,5 +2080,5 @@ class LineDataTest(CoverageTest): self.start_import_stop(cov, "fun1") data = cov.get_data() - fun1_lines = data.lines(abs_file("fun1.py")) + fun1_lines = sorted_lines(data, abs_file("fun1.py")) assert_count_equal(fun1_lines, [1, 2, 5]) diff --git a/tests/test_context.py b/tests/test_context.py index 36eff2f0..4a1635a2 100644 --- a/tests/test_context.py +++ b/tests/test_context.py @@ -9,7 +9,7 @@ from unittest import mock import coverage from coverage.context import qualname_from_frame -from coverage.data import CoverageData +from coverage.data import CoverageData, sorted_lines from tests.coveragetest import CoverageTest from tests.helpers import assert_count_equal @@ -165,7 +165,7 @@ class DynamicContextTest(CoverageTest): def assert_context_lines(context, lines): data.set_query_context(context) - assert_count_equal(lines, data.lines(fname)) + assert_count_equal(lines, sorted_lines(data, fname)) assert_context_lines("", self.OUTER_LINES) assert_context_lines("two_tests.test_one", self.TEST_ONE_LINES) @@ -187,7 +187,7 @@ class DynamicContextTest(CoverageTest): def assert_context_lines(context, lines): data.set_query_context(context) - assert_count_equal(lines, data.lines(fname)) + assert_count_equal(lines, sorted_lines(data, fname)) assert_context_lines("stat", self.OUTER_LINES) assert_context_lines("stat|two_tests.test_one", self.TEST_ONE_LINES) diff --git a/tests/test_oddball.py b/tests/test_oddball.py index 37216b39..2c35177b 100644 --- a/tests/test_oddball.py +++ b/tests/test_oddball.py @@ -12,6 +12,7 @@ import pytest import coverage from coverage import env +from coverage.data import sorted_lines from coverage.files import abs_file from coverage.misc import import_local_file @@ -383,8 +384,7 @@ class ExceptionTest(CoverageTest): data = cov.get_data() for callname in callnames: filename = callname + ".py" - lines = data.lines(abs_file(filename)) - clean_lines[filename] = sorted(lines) + clean_lines[filename] = sorted_lines(data, abs_file(filename)) assert clean_lines == lines_expected @@ -427,7 +427,7 @@ class DoctestTest(CoverageTest): self.start_import_stop(cov, "the_doctest") data = cov.get_data() assert len(data.measured_files()) == 1 - lines = data.lines(data.measured_files().pop()) + lines = sorted_lines(data, data.measured_files().pop()) assert lines == [1, 3, 18, 19, 21, 23, 24] diff --git a/tests/test_plugins.py b/tests/test_plugins.py index cd446441..d407f748 100644 --- a/tests/test_plugins.py +++ b/tests/test_plugins.py @@ -14,7 +14,7 @@ import pytest import coverage from coverage import env from coverage.control import Plugins -from coverage.data import line_counts +from coverage.data import line_counts, sorted_lines from coverage.exceptions import CoverageWarning, NoSource, PluginError from coverage.misc import import_local_file @@ -1047,11 +1047,11 @@ class DynamicContextPluginTest(CoverageTest): expected = ['', 'doctest:HTML_TAG', 'test:HTML_TAG', 'test:RENDERERS'] assert expected == sorted(data.measured_contexts()) data.set_query_context("doctest:HTML_TAG") - assert [2] == data.lines(filenames['rendering.py']) + assert [2] == sorted_lines(data, filenames['rendering.py']) data.set_query_context("test:HTML_TAG") - assert [2] == data.lines(filenames['rendering.py']) + assert [2] == sorted_lines(data, filenames['rendering.py']) data.set_query_context("test:RENDERERS") - assert [2, 5, 8, 11] == sorted(data.lines(filenames['rendering.py'])) + assert [2, 5, 8, 11] == sorted_lines(data, filenames['rendering.py']) def test_static_context(self): self.make_plugin_capitalized_testnames('plugin_tests.py') @@ -1101,7 +1101,7 @@ class DynamicContextPluginTest(CoverageTest): def assert_context_lines(context, lines): data.set_query_context(context) - assert lines == sorted(data.lines(filenames['rendering.py'])) + assert lines == sorted_lines(data, filenames['rendering.py']) assert_context_lines("doctest:HTML_TAG", [2]) assert_context_lines("testsuite.test_html_tag", [2]) @@ -1139,7 +1139,7 @@ class DynamicContextPluginTest(CoverageTest): def assert_context_lines(context, lines): data.set_query_context(context) - assert lines == sorted(data.lines(filenames['rendering.py'])) + assert lines == sorted_lines(data, filenames['rendering.py']) assert_context_lines("test:HTML_TAG", [2]) assert_context_lines("test:RENDERERS", [2, 5, 8, 11]) |