@@ -750,24 +750,31 @@ def test_xml(self):
750
750
class TestSummaryReporterConfiguration (CoverageTest ):
751
751
"""Tests of SummaryReporter."""
752
752
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 ):
766
768
"""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" ])
768
775
cov .start ()
776
+ import doit # pragma: nested # pylint: disable=import-error, unused-variable
769
777
cov .stop () # pragma: nested
770
- cov ._data = coverage_data
771
778
printer = SummaryReporter (cov , options )
772
779
destination = StringIO ()
773
780
printer .report ([], destination )
@@ -777,8 +784,7 @@ def test_test_data(self):
777
784
# We use our own test files as test data. Check that our assumptions
778
785
# about them are still valid. We want the three columns of numbers to
779
786
# 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 ())
782
788
print (report )
783
789
# Name Stmts Miss Cover
784
790
# --------------------------------------------
@@ -802,18 +808,16 @@ def test_test_data(self):
802
808
803
809
def test_defaults (self ):
804
810
"""Run the report with no configuration options."""
805
- data = self .get_coverage_data (self .LINES_1 )
806
811
opts = CoverageConfig ()
807
- report = self .get_summary_text (data , opts )
812
+ report = self .get_summary_text (opts )
808
813
self .assertNotIn ('Missing' , report )
809
814
self .assertNotIn ('Branch' , report )
810
815
811
816
def test_print_missing (self ):
812
817
"""Run the report printing the missing lines."""
813
- data = self .get_coverage_data (self .LINES_1 )
814
818
opts = CoverageConfig ()
815
819
opts .from_args (show_missing = True )
816
- report = self .get_summary_text (data , opts )
820
+ report = self .get_summary_text (opts )
817
821
self .assertIn ('Missing' , report )
818
822
self .assertNotIn ('Branch' , report )
819
823
@@ -827,33 +831,29 @@ def assert_ordering(self, text, *words):
827
831
828
832
def test_sort_report_by_stmts (self ):
829
833
# Sort the text report by the Stmts column.
830
- data = self .get_coverage_data (self .LINES_1 )
831
834
opts = CoverageConfig ()
832
835
opts .from_args (sort = 'Stmts' )
833
- report = self .get_summary_text (data , opts )
836
+ report = self .get_summary_text (opts )
834
837
self .assert_ordering (report , "test_backward.py" , "test_coverage.py" , "test_api.py" )
835
838
836
839
def test_sort_report_by_missing (self ):
837
840
# Sort the text report by the Missing column.
838
- data = self .get_coverage_data (self .LINES_1 )
839
841
opts = CoverageConfig ()
840
842
opts .from_args (sort = 'Miss' )
841
- report = self .get_summary_text (data , opts )
843
+ report = self .get_summary_text (opts )
842
844
self .assert_ordering (report , "test_backward.py" , "test_api.py" , "test_coverage.py" )
843
845
844
846
def test_sort_report_by_cover (self ):
845
847
# Sort the text report by the Cover column.
846
- data = self .get_coverage_data (self .LINES_1 )
847
848
opts = CoverageConfig ()
848
849
opts .from_args (sort = 'Cover' )
849
- report = self .get_summary_text (data , opts )
850
+ report = self .get_summary_text (opts )
850
851
self .assert_ordering (report , "test_coverage.py" , "test_api.py" , "test_backward.py" )
851
852
852
853
def test_sort_report_by_invalid_option (self ):
853
854
# Sort the text report by a nonsense column.
854
- data = self .get_coverage_data (self .LINES_1 )
855
855
opts = CoverageConfig ()
856
856
opts .from_args (sort = 'Xyzzy' )
857
857
msg = "Invalid sorting option: 'Xyzzy'"
858
858
with self .assertRaisesRegex (CoverageException , msg ):
859
- self .get_summary_text (data , opts )
859
+ self .get_summary_text (opts )
0 commit comments