parent
a295a3ddaf
commit
7183335e62
|
@ -0,0 +1 @@
|
|||
Warnings issued during ``pytest_configure`` are explicitly not treated as errors, even if configured as such, because it otherwise completely breaks pytest.
|
|
@ -642,7 +642,9 @@ class Config:
|
|||
def _do_configure(self):
|
||||
assert not self._configured
|
||||
self._configured = True
|
||||
self.hook.pytest_configure.call_historic(kwargs=dict(config=self))
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("default")
|
||||
self.hook.pytest_configure.call_historic(kwargs=dict(config=self))
|
||||
|
||||
def _ensure_unconfigure(self):
|
||||
if self._configured:
|
||||
|
|
|
@ -645,3 +645,21 @@ def test_group_warnings_by_message(testdir):
|
|||
warning_code = 'warnings.warn(UserWarning("foo"))'
|
||||
assert warning_code in result.stdout.str()
|
||||
assert result.stdout.str().count(warning_code) == 1
|
||||
|
||||
|
||||
def test_pytest_configure_warning(testdir, recwarn):
|
||||
"""Issue 5115."""
|
||||
testdir.makeconftest(
|
||||
"""
|
||||
def pytest_configure():
|
||||
import warnings
|
||||
|
||||
warnings.warn("from pytest_configure")
|
||||
"""
|
||||
)
|
||||
|
||||
result = testdir.runpytest()
|
||||
assert result.ret == 5
|
||||
assert "INTERNALERROR" not in result.stderr.str()
|
||||
warning = recwarn.pop()
|
||||
assert str(warning.message) == "from pytest_configure"
|
||||
|
|
Loading…
Reference in New Issue