Partially revert "Remove --no-print-logs option"
We'll deprecate --no-print-logs beginning with pytest-4.0.
This reverts commit ac7eb63a6b
.
This commit is contained in:
parent
ac7eb63a6b
commit
acda6c46fb
|
@ -84,6 +84,11 @@ def pytest_addoption(parser):
|
||||||
help='default value for ' + option)
|
help='default value for ' + option)
|
||||||
group.addoption(option, dest=dest, **kwargs)
|
group.addoption(option, dest=dest, **kwargs)
|
||||||
|
|
||||||
|
add_option_ini(
|
||||||
|
'--no-print-logs',
|
||||||
|
dest='log_print', action='store_const', const=False, default=True,
|
||||||
|
type='bool',
|
||||||
|
help='disable printing caught logs on failed tests.')
|
||||||
add_option_ini(
|
add_option_ini(
|
||||||
'--log-level',
|
'--log-level',
|
||||||
dest='log_level', default=None,
|
dest='log_level', default=None,
|
||||||
|
@ -338,6 +343,7 @@ class LoggingPlugin(object):
|
||||||
assert self._config.pluginmanager.get_plugin('terminalreporter') is None
|
assert self._config.pluginmanager.get_plugin('terminalreporter') is None
|
||||||
config.option.verbose = 1
|
config.option.verbose = 1
|
||||||
|
|
||||||
|
self.print_logs = get_option_ini(config, 'log_print')
|
||||||
self.formatter = logging.Formatter(get_option_ini(config, 'log_format'),
|
self.formatter = logging.Formatter(get_option_ini(config, 'log_format'),
|
||||||
get_option_ini(config, 'log_date_format'))
|
get_option_ini(config, 'log_date_format'))
|
||||||
self.log_level = get_actual_log_level(config, 'log_level')
|
self.log_level = get_actual_log_level(config, 'log_level')
|
||||||
|
@ -388,6 +394,7 @@ class LoggingPlugin(object):
|
||||||
if when == 'teardown':
|
if when == 'teardown':
|
||||||
del item.catch_log_handlers
|
del item.catch_log_handlers
|
||||||
|
|
||||||
|
if self.print_logs:
|
||||||
# Add a captured log section to the report.
|
# Add a captured log section to the report.
|
||||||
log = log_handler.stream.getvalue().strip()
|
log = log_handler.stream.getvalue().strip()
|
||||||
item.add_report_section(when, 'log', log)
|
item.add_report_section(when, 'log', log)
|
||||||
|
|
|
@ -91,6 +91,60 @@ def test_teardown_logging(testdir):
|
||||||
'*text going to logger from teardown*'])
|
'*text going to logger from teardown*'])
|
||||||
|
|
||||||
|
|
||||||
|
def test_disable_log_capturing(testdir):
|
||||||
|
testdir.makepyfile('''
|
||||||
|
import sys
|
||||||
|
import logging
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
def test_foo():
|
||||||
|
sys.stdout.write('text going to stdout')
|
||||||
|
logger.warning('catch me if you can!')
|
||||||
|
sys.stderr.write('text going to stderr')
|
||||||
|
assert False
|
||||||
|
''')
|
||||||
|
result = testdir.runpytest('--no-print-logs')
|
||||||
|
print(result.stdout)
|
||||||
|
assert result.ret == 1
|
||||||
|
result.stdout.fnmatch_lines(['*- Captured stdout call -*',
|
||||||
|
'text going to stdout'])
|
||||||
|
result.stdout.fnmatch_lines(['*- Captured stderr call -*',
|
||||||
|
'text going to stderr'])
|
||||||
|
with pytest.raises(pytest.fail.Exception):
|
||||||
|
result.stdout.fnmatch_lines(['*- Captured *log call -*'])
|
||||||
|
|
||||||
|
|
||||||
|
def test_disable_log_capturing_ini(testdir):
|
||||||
|
testdir.makeini(
|
||||||
|
'''
|
||||||
|
[pytest]
|
||||||
|
log_print=False
|
||||||
|
'''
|
||||||
|
)
|
||||||
|
testdir.makepyfile('''
|
||||||
|
import sys
|
||||||
|
import logging
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
def test_foo():
|
||||||
|
sys.stdout.write('text going to stdout')
|
||||||
|
logger.warning('catch me if you can!')
|
||||||
|
sys.stderr.write('text going to stderr')
|
||||||
|
assert False
|
||||||
|
''')
|
||||||
|
result = testdir.runpytest()
|
||||||
|
print(result.stdout)
|
||||||
|
assert result.ret == 1
|
||||||
|
result.stdout.fnmatch_lines(['*- Captured stdout call -*',
|
||||||
|
'text going to stdout'])
|
||||||
|
result.stdout.fnmatch_lines(['*- Captured stderr call -*',
|
||||||
|
'text going to stderr'])
|
||||||
|
with pytest.raises(pytest.fail.Exception):
|
||||||
|
result.stdout.fnmatch_lines(['*- Captured *log call -*'])
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('enabled', [True, False])
|
@pytest.mark.parametrize('enabled', [True, False])
|
||||||
def test_log_cli_enabled_disabled(testdir, enabled):
|
def test_log_cli_enabled_disabled(testdir, enabled):
|
||||||
msg = 'critical message logged by test'
|
msg = 'critical message logged by test'
|
||||||
|
|
Loading…
Reference in New Issue