Merge pull request #6986 from RonnyPfannschmidt/fix-6951-tw.writer-writable
fix #6951: allow to write TerminalReporter.writer
This commit is contained in:
commit
ce429381a7
|
@ -0,0 +1 @@
|
|||
Allow users to still set the deprecated ``TerminalReporter.writer`` attribute.
|
|
@ -55,3 +55,9 @@ COLLECT_DIRECTORY_HOOK = PytestDeprecationWarning(
|
|||
"The pytest_collect_directory hook is not working.\n"
|
||||
"Please use collect_ignore in conftests or pytest_collection_modifyitems."
|
||||
)
|
||||
|
||||
|
||||
TERMINALWRITER_WRITER = PytestDeprecationWarning(
|
||||
"The TerminalReporter.writer attribute is deprecated, use TerminalReporter._tw instead at your own risk.\n"
|
||||
"See https://docs.pytest.org/en/latest/deprecations.html#terminalreporter-writer for more information."
|
||||
)
|
||||
|
|
|
@ -29,6 +29,7 @@ from _pytest import nodes
|
|||
from _pytest._io import TerminalWriter
|
||||
from _pytest.config import Config
|
||||
from _pytest.config import ExitCode
|
||||
from _pytest.deprecated import TERMINALWRITER_WRITER
|
||||
from _pytest.main import Session
|
||||
from _pytest.reports import CollectReport
|
||||
from _pytest.reports import TestReport
|
||||
|
@ -284,14 +285,14 @@ class TerminalReporter:
|
|||
|
||||
@property
|
||||
def writer(self) -> TerminalWriter:
|
||||
warnings.warn(
|
||||
pytest.PytestDeprecationWarning(
|
||||
"TerminalReporter.writer attribute is deprecated, use TerminalReporter._tw instead at your own risk.\n"
|
||||
"See https://docs.pytest.org/en/latest/deprecations.html#terminalreporter-writer for more information."
|
||||
)
|
||||
)
|
||||
warnings.warn(TERMINALWRITER_WRITER, stacklevel=2)
|
||||
return self._tw
|
||||
|
||||
@writer.setter
|
||||
def writer(self, value: TerminalWriter):
|
||||
warnings.warn(TERMINALWRITER_WRITER, stacklevel=2)
|
||||
self._tw = value
|
||||
|
||||
def _determine_show_progress_info(self):
|
||||
"""Return True if we should display progress information based on the current config"""
|
||||
# do not show progress if we are not capturing output (#3038)
|
||||
|
|
|
@ -36,8 +36,15 @@ def test_terminal_reporter_writer_attr(pytestconfig):
|
|||
except ImportError:
|
||||
pass
|
||||
terminal_reporter = pytestconfig.pluginmanager.get_plugin("terminalreporter")
|
||||
expected_tw = terminal_reporter._tw
|
||||
|
||||
with pytest.warns(pytest.PytestDeprecationWarning):
|
||||
assert terminal_reporter.writer is terminal_reporter._tw
|
||||
assert terminal_reporter.writer is expected_tw
|
||||
|
||||
with pytest.warns(pytest.PytestDeprecationWarning):
|
||||
terminal_reporter.writer = expected_tw
|
||||
|
||||
assert terminal_reporter._tw is expected_tw
|
||||
|
||||
|
||||
@pytest.mark.parametrize("plugin", sorted(deprecated.DEPRECATED_EXTERNAL_PLUGINS))
|
||||
|
|
Loading…
Reference in New Issue