Skip to content

Commit e1d0020

Browse files
committed
Change these tests to not use weird attribute stuffing
1 parent 8c05c99 commit e1d0020

File tree

1 file changed

+29
-29
lines changed

1 file changed

+29
-29
lines changed

tests/test_summary.py

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -750,24 +750,31 @@ def test_xml(self):
750750
class TestSummaryReporterConfiguration(CoverageTest):
751751
"""Tests of SummaryReporter."""
752752

753-
LINES_1 = {
754-
os.path.join(TESTS_DIR, "test_api.py"): dict.fromkeys(range(400)),
755-
os.path.join(TESTS_DIR, "test_backward.py"): dict.fromkeys(range(20)),
756-
os.path.join(TESTS_DIR, "test_coverage.py"): dict.fromkeys(range(15)),
757-
}
758-
759-
def get_coverage_data(self, lines):
760-
"""Get a CoverageData object that includes the requested lines."""
761-
data = CoverageData()
762-
data.add_lines(lines)
763-
return data
764-
765-
def get_summary_text(self, coverage_data, options):
753+
def make_rigged_file(self, filename, stmts, miss):
754+
"""Create a file that will have specific results.
755+
756+
`stmts` and `miss` are ints, the number of statements, and
757+
missed statements that should result.
758+
"""
759+
run = stmts - miss - 1
760+
dont_run = miss
761+
source = ""
762+
source += "a = 1\n" * run
763+
source += "if a == 99:\n"
764+
source += " a = 2\n" * dont_run
765+
self.make_file(filename, source)
766+
767+
def get_summary_text(self, options):
766768
"""Get text output from the SummaryReporter."""
767-
cov = Coverage()
769+
self.make_rigged_file("file1.py", 339, 155)
770+
self.make_rigged_file("file2.py", 13, 3)
771+
self.make_rigged_file("file3.py", 234, 228)
772+
self.make_file("doit.py", "import file1, file2, file3")
773+
774+
cov = Coverage(source=["."], omit=["doit.py"])
768775
cov.start()
776+
import doit # pragma: nested # pylint: disable=import-error, unused-variable
769777
cov.stop() # pragma: nested
770-
cov._data = coverage_data
771778
printer = SummaryReporter(cov, options)
772779
destination = StringIO()
773780
printer.report([], destination)
@@ -777,8 +784,7 @@ def test_test_data(self):
777784
# We use our own test files as test data. Check that our assumptions
778785
# about them are still valid. We want the three columns of numbers to
779786
# sort in three different orders.
780-
data = self.get_coverage_data(self.LINES_1)
781-
report = self.get_summary_text(data, CoverageConfig())
787+
report = self.get_summary_text(CoverageConfig())
782788
print(report)
783789
# Name Stmts Miss Cover
784790
# --------------------------------------------
@@ -802,18 +808,16 @@ def test_test_data(self):
802808

803809
def test_defaults(self):
804810
"""Run the report with no configuration options."""
805-
data = self.get_coverage_data(self.LINES_1)
806811
opts = CoverageConfig()
807-
report = self.get_summary_text(data, opts)
812+
report = self.get_summary_text(opts)
808813
self.assertNotIn('Missing', report)
809814
self.assertNotIn('Branch', report)
810815

811816
def test_print_missing(self):
812817
"""Run the report printing the missing lines."""
813-
data = self.get_coverage_data(self.LINES_1)
814818
opts = CoverageConfig()
815819
opts.from_args(show_missing=True)
816-
report = self.get_summary_text(data, opts)
820+
report = self.get_summary_text(opts)
817821
self.assertIn('Missing', report)
818822
self.assertNotIn('Branch', report)
819823

@@ -827,33 +831,29 @@ def assert_ordering(self, text, *words):
827831

828832
def test_sort_report_by_stmts(self):
829833
# Sort the text report by the Stmts column.
830-
data = self.get_coverage_data(self.LINES_1)
831834
opts = CoverageConfig()
832835
opts.from_args(sort='Stmts')
833-
report = self.get_summary_text(data, opts)
836+
report = self.get_summary_text(opts)
834837
self.assert_ordering(report, "test_backward.py", "test_coverage.py", "test_api.py")
835838

836839
def test_sort_report_by_missing(self):
837840
# Sort the text report by the Missing column.
838-
data = self.get_coverage_data(self.LINES_1)
839841
opts = CoverageConfig()
840842
opts.from_args(sort='Miss')
841-
report = self.get_summary_text(data, opts)
843+
report = self.get_summary_text(opts)
842844
self.assert_ordering(report, "test_backward.py", "test_api.py", "test_coverage.py")
843845

844846
def test_sort_report_by_cover(self):
845847
# Sort the text report by the Cover column.
846-
data = self.get_coverage_data(self.LINES_1)
847848
opts = CoverageConfig()
848849
opts.from_args(sort='Cover')
849-
report = self.get_summary_text(data, opts)
850+
report = self.get_summary_text(opts)
850851
self.assert_ordering(report, "test_coverage.py", "test_api.py", "test_backward.py")
851852

852853
def test_sort_report_by_invalid_option(self):
853854
# Sort the text report by a nonsense column.
854-
data = self.get_coverage_data(self.LINES_1)
855855
opts = CoverageConfig()
856856
opts.from_args(sort='Xyzzy')
857857
msg = "Invalid sorting option: 'Xyzzy'"
858858
with self.assertRaisesRegex(CoverageException, msg):
859-
self.get_summary_text(data, opts)
859+
self.get_summary_text(opts)

0 commit comments

Comments
 (0)