aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/pytest/py3/_pytest/warnings.py
diff options
context:
space:
mode:
authordeshevoy <deshevoy@yandex-team.ru>2022-02-10 16:46:57 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:46:57 +0300
commit28148f76dbfcc644d96427d41c92f36cbf2fdc6e (patch)
treeb83306b6e37edeea782e9eed673d89286c4fef35 /contrib/python/pytest/py3/_pytest/warnings.py
parente988f30484abe5fdeedcc7a5d3c226c01a21800c (diff)
downloadydb-28148f76dbfcc644d96427d41c92f36cbf2fdc6e.tar.gz
Restoring authorship annotation for <deshevoy@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'contrib/python/pytest/py3/_pytest/warnings.py')
-rw-r--r--contrib/python/pytest/py3/_pytest/warnings.py140
1 files changed, 70 insertions, 70 deletions
diff --git a/contrib/python/pytest/py3/_pytest/warnings.py b/contrib/python/pytest/py3/_pytest/warnings.py
index 60e9a4fd72..35eed96df5 100644
--- a/contrib/python/pytest/py3/_pytest/warnings.py
+++ b/contrib/python/pytest/py3/_pytest/warnings.py
@@ -1,31 +1,31 @@
-import sys
-import warnings
-from contextlib import contextmanager
+import sys
+import warnings
+from contextlib import contextmanager
from typing import Generator
from typing import Optional
from typing import TYPE_CHECKING
-
-import pytest
+
+import pytest
from _pytest.config import apply_warning_filters
from _pytest.config import Config
from _pytest.config import parse_warning_filter
from _pytest.main import Session
from _pytest.nodes import Item
from _pytest.terminal import TerminalReporter
-
+
if TYPE_CHECKING:
from typing_extensions import Literal
-
-
+
+
def pytest_configure(config: Config) -> None:
- config.addinivalue_line(
- "markers",
- "filterwarnings(warning): add a warning filter to the given test. "
+ config.addinivalue_line(
+ "markers",
+ "filterwarnings(warning): add a warning filter to the given test. "
"see https://docs.pytest.org/en/stable/warnings.html#pytest-mark-filterwarnings ",
- )
-
-
-@contextmanager
+ )
+
+
+@contextmanager
def catch_warnings_for_item(
config: Config,
ihook,
@@ -33,42 +33,42 @@ def catch_warnings_for_item(
item: Optional[Item],
) -> Generator[None, None, None]:
"""Context manager that catches warnings generated in the contained execution block.
-
- ``item`` can be None if we are not in the context of an item execution.
-
+
+ ``item`` can be None if we are not in the context of an item execution.
+
Each warning captured triggers the ``pytest_warning_recorded`` hook.
- """
+ """
config_filters = config.getini("filterwarnings")
cmdline_filters = config.known_args_namespace.pythonwarnings or []
- with warnings.catch_warnings(record=True) as log:
+ with warnings.catch_warnings(record=True) as log:
# mypy can't infer that record=True means log is not None; help it.
assert log is not None
-
- if not sys.warnoptions:
+
+ if not sys.warnoptions:
# If user is not explicitly configuring warning filters, show deprecation warnings by default (#2908).
- warnings.filterwarnings("always", category=DeprecationWarning)
- warnings.filterwarnings("always", category=PendingDeprecationWarning)
-
+ warnings.filterwarnings("always", category=DeprecationWarning)
+ warnings.filterwarnings("always", category=PendingDeprecationWarning)
+
apply_warning_filters(config_filters, cmdline_filters)
-
+
# apply filters from "filterwarnings" marks
nodeid = "" if item is None else item.nodeid
- if item is not None:
- for mark in item.iter_markers(name="filterwarnings"):
- for arg in mark.args:
+ if item is not None:
+ for mark in item.iter_markers(name="filterwarnings"):
+ for arg in mark.args:
warnings.filterwarnings(*parse_warning_filter(arg, escape=False))
-
- yield
-
- for warning_message in log:
- ihook.pytest_warning_captured.call_historic(
+
+ yield
+
+ for warning_message in log:
+ ihook.pytest_warning_captured.call_historic(
kwargs=dict(
warning_message=warning_message,
when=when,
item=item,
location=None,
)
- )
+ )
ihook.pytest_warning_recorded.call_historic(
kwargs=dict(
warning_message=warning_message,
@@ -77,49 +77,49 @@ def catch_warnings_for_item(
location=None,
)
)
-
-
+
+
def warning_record_to_str(warning_message: warnings.WarningMessage) -> str:
"""Convert a warnings.WarningMessage to a string."""
- warn_msg = warning_message.message
- msg = warnings.formatwarning(
+ warn_msg = warning_message.message
+ msg = warnings.formatwarning(
str(warn_msg),
- warning_message.category,
- warning_message.filename,
- warning_message.lineno,
- warning_message.line,
- )
- return msg
-
-
-@pytest.hookimpl(hookwrapper=True, tryfirst=True)
+ warning_message.category,
+ warning_message.filename,
+ warning_message.lineno,
+ warning_message.line,
+ )
+ return msg
+
+
+@pytest.hookimpl(hookwrapper=True, tryfirst=True)
def pytest_runtest_protocol(item: Item) -> Generator[None, None, None]:
- with catch_warnings_for_item(
- config=item.config, ihook=item.ihook, when="runtest", item=item
- ):
- yield
-
-
-@pytest.hookimpl(hookwrapper=True, tryfirst=True)
+ with catch_warnings_for_item(
+ config=item.config, ihook=item.ihook, when="runtest", item=item
+ ):
+ yield
+
+
+@pytest.hookimpl(hookwrapper=True, tryfirst=True)
def pytest_collection(session: Session) -> Generator[None, None, None]:
- config = session.config
- with catch_warnings_for_item(
- config=config, ihook=config.hook, when="collect", item=None
- ):
- yield
-
-
-@pytest.hookimpl(hookwrapper=True)
+ config = session.config
+ with catch_warnings_for_item(
+ config=config, ihook=config.hook, when="collect", item=None
+ ):
+ yield
+
+
+@pytest.hookimpl(hookwrapper=True)
def pytest_terminal_summary(
terminalreporter: TerminalReporter,
) -> Generator[None, None, None]:
- config = terminalreporter.config
- with catch_warnings_for_item(
- config=config, ihook=config.hook, when="config", item=None
- ):
- yield
-
-
+ config = terminalreporter.config
+ with catch_warnings_for_item(
+ config=config, ihook=config.hook, when="config", item=None
+ ):
+ yield
+
+
@pytest.hookimpl(hookwrapper=True)
def pytest_sessionfinish(session: Session) -> Generator[None, None, None]:
config = session.config