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):
|
def _do_configure(self):
|
||||||
assert not self._configured
|
assert not self._configured
|
||||||
self._configured = True
|
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):
|
def _ensure_unconfigure(self):
|
||||||
if self._configured:
|
if self._configured:
|
||||||
|
|
|
@ -645,3 +645,21 @@ def test_group_warnings_by_message(testdir):
|
||||||
warning_code = 'warnings.warn(UserWarning("foo"))'
|
warning_code = 'warnings.warn(UserWarning("foo"))'
|
||||||
assert warning_code in result.stdout.str()
|
assert warning_code in result.stdout.str()
|
||||||
assert result.stdout.str().count(warning_code) == 1
|
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