@@ -177,23 +177,23 @@ def save_test_results(failures, test_labels):
177177
178178class CoverageReporter (Reporter ):
179179 def report (self ):
180- self .find_code_units (None )
180+ self .find_file_reporters (None )
181181
182182 total = Numbers ()
183183 result = {"coverage" : 0.0 , "covered" : {}, "format" : 2 , }
184- for cu in self .code_units :
184+ for fr in self .file_reporters :
185185 try :
186- analysis = self .coverage ._analyze (cu )
186+ analysis = self .coverage ._analyze (fr )
187187 nums = analysis .numbers
188- result ["covered" ][cu . name ] = (nums .n_statements , nums .pc_covered / 100.0 )
188+ result ["covered" ][fr . relative_filename () ] = (nums .n_statements , nums .pc_covered / 100.0 )
189189 total += nums
190190 except KeyboardInterrupt : # pragma: not covered
191191 raise
192192 except Exception :
193193 report_it = not self .config .ignore_errors
194194 if report_it :
195195 typ , msg = sys .exc_info ()[:2 ]
196- if typ is NotPython and not cu .should_be_python ():
196+ if typ is NotPython and not fr .should_be_python ():
197197 report_it = False
198198 if report_it :
199199 raise
@@ -355,6 +355,11 @@ def setup_test_environment(self, **kwargs):
355355 settings .MIDDLEWARE_CLASSES = ('ietf.utils.test_runner.RecordUrlsMiddleware' ,) + settings .MIDDLEWARE_CLASSES
356356
357357 self .code_coverage_checker = settings .TEST_CODE_COVERAGE_CHECKER
358+ if not self .code_coverage_checker ._started :
359+ sys .stderr .write (" ** Warning: In %s: Expected the coverage checker to have\n "
360+ " been started already, but it wasn't. Doing so now. Coverage numbers\n "
361+ " will be off, though.\n " % __name__ )
362+ self .code_coverage_checker .start ()
358363
359364 if settings .SITE_ID != 1 :
360365 print " Changing SITE_ID to '1' during testing."
@@ -397,7 +402,7 @@ def teardown_test_environment(self, **kwargs):
397402 self .coverage_master [self .save_version_coverage ] = self .coverage_data
398403 if self .coverage_file .endswith ('.gz' ):
399404 with gzip .open (self .coverage_file , "wb" ) as file :
400- json .dump (self .coverage_master , file , indent = 2 , sort_keys = True )
405+ json .dump (self .coverage_master , file , sort_keys = True )
401406 else :
402407 with codecs .open (self .coverage_file , "w" , encoding = "utf-8" ) as file :
403408 json .dump (self .coverage_master , file , indent = 2 , sort_keys = True )
@@ -436,7 +441,7 @@ def get_test_paths(self, test_labels):
436441 test_paths = [ os .path .join (* app .split ('.' )) for app in test_apps ]
437442 return test_apps , test_paths
438443
439- def run_tests (self , test_labels , extra_tests = None , ** kwargs ):
444+ def run_tests (self , test_labels , extra_tests = [] , ** kwargs ):
440445 # Tests that involve switching back and forth between the real
441446 # database and the test database are way too dangerous to run
442447 # against the production database
@@ -457,13 +462,14 @@ def run_tests(self, test_labels, extra_tests=None, **kwargs):
457462
458463 self .test_apps , self .test_paths = self .get_test_paths (test_labels )
459464
460- extra_tests = [
461- CoverageTest (test_runner = self , methodName = 'url_coverage_test' ),
462- CoverageTest (test_runner = self , methodName = 'template_coverage_test' ),
463- CoverageTest (test_runner = self , methodName = 'code_coverage_test' ),
464- ]
465+ if self .check_coverage :
466+ extra_tests += [
467+ CoverageTest (test_runner = self , methodName = 'url_coverage_test' ),
468+ CoverageTest (test_runner = self , methodName = 'template_coverage_test' ),
469+ CoverageTest (test_runner = self , methodName = 'code_coverage_test' ),
470+ ]
465471
466- self .reorder_by += (CoverageTest , ) # see to it that the coverage tests come last
472+ self .reorder_by += (CoverageTest , ) # see to it that the coverage tests come last
467473
468474 failures = super (IetfTestRunner , self ).run_tests (test_labels , extra_tests = extra_tests , ** kwargs )
469475
0 commit comments