From f188d974d0e11a92a12c359cb8d3354b89f5aaf4 Mon Sep 17 00:00:00 2001 From: Bruno Oliveira Date: Thu, 3 Sep 2020 10:24:27 -0300 Subject: [PATCH] Disabling 'warnings' plugin also disables config time warnings --- src/_pytest/config/__init__.py | 2 ++ testing/test_config.py | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/_pytest/config/__init__.py b/src/_pytest/config/__init__.py index 175680bd051..d805823882f 100644 --- a/src/_pytest/config/__init__.py +++ b/src/_pytest/config/__init__.py @@ -1235,6 +1235,8 @@ def issue_config_time_warning(self, warning: Warning, stacklevel: int) -> None: :param warning: The warning instance. :param stacklevel: stacklevel forwarded to warnings.warn. """ + if self.pluginmanager.is_blocked("warnings"): + return cmdline_filters = self.known_args_namespace.pythonwarnings or [] config_filters = self.getini("filterwarnings") diff --git a/testing/test_config.py b/testing/test_config.py index 3e8817bc7b4..94ebde522e7 100644 --- a/testing/test_config.py +++ b/testing/test_config.py @@ -275,6 +275,24 @@ def test_silence_unknown_key_warning(self, testdir: Testdir) -> None: result = testdir.runpytest() result.stdout.no_fnmatch_line("*PytestConfigWarning*") + @pytest.mark.filterwarnings("default") + def test_disable_warnings_plugin_disables_config_warnings( + self, testdir: Testdir + ) -> None: + """Disabling 'warnings' plugin also disables config time warnings""" + testdir.makeconftest( + """ + import pytest + def pytest_configure(config): + config.issue_config_time_warning( + pytest.PytestConfigWarning("custom config warning"), + stacklevel=2, + ) + """ + ) + result = testdir.runpytest("-pno:warnings") + result.stdout.no_fnmatch_line("*PytestConfigWarning*") + @pytest.mark.parametrize( "ini_file_text, exception_text", [