11
11
from coverage .results import display_covered
12
12
from coverage .results import should_fail_under
13
13
14
- try :
15
- from pytest import TerminalReporter # noqa: PT013
16
- except ImportError :
17
- from _pytest .terminal import TerminalReporter
18
-
19
14
from . import CovDisabledWarning
20
15
from . import CovFailUnderWarning
21
16
from . import CovReportWarning
@@ -222,6 +217,7 @@ def __init__(self, options, pluginmanager, start=True, no_cov_should_warn=False)
222
217
self ._start_path = None
223
218
self ._disabled = False
224
219
self .options = options
220
+ self .wrote_heading = False
225
221
226
222
is_dist = getattr (options , 'numprocesses' , False ) or getattr (options , 'distload' , False ) or getattr (options , 'dist' , 'no' ) != 'no'
227
223
if getattr (options , 'no_cov' , False ):
@@ -338,8 +334,6 @@ def pytest_runtestloop(self, session):
338
334
# it for unit tests that don't need it
339
335
from coverage .misc import CoverageException
340
336
341
- tr = TerminalReporter (session .config , self .cov_report )
342
- tr .write_sep ('=' , 'coverage report' )
343
337
try :
344
338
self .cov_total = self .cov_controller .summary (self .cov_report )
345
339
except CoverageException as exc :
@@ -363,9 +357,15 @@ def pytest_runtestloop(self, session):
363
357
# make sure we get the EXIT_TESTSFAILED exit code
364
358
compat_session .testsfailed += 1
365
359
360
+ def write_heading (self , terminalreporter ):
361
+ if not self .wrote_heading :
362
+ terminalreporter .write_sep ('=' , 'tests coverage' )
363
+ self .wrote_heading = True
364
+
366
365
def pytest_terminal_summary (self , terminalreporter ):
367
366
if self ._disabled :
368
367
if self .options .no_cov_should_warn :
368
+ self .write_heading (terminalreporter )
369
369
message = 'Coverage disabled via --no-cov switch!'
370
370
terminalreporter .write (f'WARNING: { message } \n ' , red = True , bold = True )
371
371
warnings .warn (CovDisabledWarning (message ), stacklevel = 1 )
@@ -381,9 +381,11 @@ def pytest_terminal_summary(self, terminalreporter):
381
381
382
382
# Avoid undesirable new lines when output is disabled with "--cov-report=".
383
383
if report :
384
+ self .write_heading (terminalreporter )
384
385
terminalreporter .write ('\n ' + report + '\n ' )
385
386
386
387
if self .options .cov_fail_under is not None and self .options .cov_fail_under > 0 :
388
+ self .write_heading (terminalreporter )
387
389
failed = self .cov_total < self .options .cov_fail_under
388
390
markup = {'red' : True , 'bold' : True } if failed else {'green' : True }
389
391
message = '{fail}Required test coverage of {required}% {reached}. ' 'Total coverage: {actual:.2f}%\n ' .format (
0 commit comments