aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/pytest/py3/_pytest/warnings.py
diff options
context:
space:
mode:
authorshadchin <shadchin@yandex-team.ru>2022-02-10 16:44:39 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:44:39 +0300
commite9656aae26e0358d5378e5b63dcac5c8dbe0e4d0 (patch)
tree64175d5cadab313b3e7039ebaa06c5bc3295e274 /contrib/python/pytest/py3/_pytest/warnings.py
parent2598ef1d0aee359b4b6d5fdd1758916d5907d04f (diff)
downloadydb-e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0.tar.gz
Restoring authorship annotation for <shadchin@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.py142
1 files changed, 71 insertions, 71 deletions
diff --git a/contrib/python/pytest/py3/_pytest/warnings.py b/contrib/python/pytest/py3/_pytest/warnings.py
index 7d874959ce..35eed96df5 100644
--- a/contrib/python/pytest/py3/_pytest/warnings.py
+++ b/contrib/python/pytest/py3/_pytest/warnings.py
@@ -1,89 +1,89 @@
import sys
import warnings
from contextlib import contextmanager
-from typing import Generator
-from typing import Optional
-from typing import TYPE_CHECKING
+from typing import Generator
+from typing import Optional
+from typing import TYPE_CHECKING
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
+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
+if TYPE_CHECKING:
+ from typing_extensions import Literal
-def pytest_configure(config: Config) -> None:
+def pytest_configure(config: Config) -> None:
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 ",
+ "see https://docs.pytest.org/en/stable/warnings.html#pytest-mark-filterwarnings ",
)
@contextmanager
-def catch_warnings_for_item(
- config: Config,
- ihook,
- when: "Literal['config', 'collect', 'runtest']",
- item: Optional[Item],
-) -> Generator[None, None, None]:
- """Context manager that catches warnings generated in the contained execution block.
+def catch_warnings_for_item(
+ config: Config,
+ ihook,
+ when: "Literal['config', 'collect', 'runtest']",
+ 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.
- Each warning captured triggers the ``pytest_warning_recorded`` hook.
+ Each warning captured triggers the ``pytest_warning_recorded`` hook.
"""
- config_filters = config.getini("filterwarnings")
- cmdline_filters = config.known_args_namespace.pythonwarnings or []
+ config_filters = config.getini("filterwarnings")
+ cmdline_filters = config.known_args_namespace.pythonwarnings or []
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
+ # mypy can't infer that record=True means log is not None; help it.
+ assert log is not None
if not sys.warnoptions:
- # If user is not explicitly configuring warning filters, show deprecation warnings by default (#2908).
+ # If user is not explicitly configuring warning filters, show deprecation warnings by default (#2908).
warnings.filterwarnings("always", category=DeprecationWarning)
warnings.filterwarnings("always", category=PendingDeprecationWarning)
- apply_warning_filters(config_filters, cmdline_filters)
+ apply_warning_filters(config_filters, cmdline_filters)
- # apply filters from "filterwarnings" marks
- nodeid = "" if item is None else item.nodeid
+ # 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:
- warnings.filterwarnings(*parse_warning_filter(arg, escape=False))
+ warnings.filterwarnings(*parse_warning_filter(arg, escape=False))
yield
for warning_message in log:
ihook.pytest_warning_captured.call_historic(
- kwargs=dict(
- warning_message=warning_message,
- when=when,
- item=item,
- location=None,
- )
+ kwargs=dict(
+ warning_message=warning_message,
+ when=when,
+ item=item,
+ location=None,
+ )
)
- ihook.pytest_warning_recorded.call_historic(
- kwargs=dict(
- warning_message=warning_message,
- nodeid=nodeid,
- when=when,
- location=None,
- )
- )
-
-
-def warning_record_to_str(warning_message: warnings.WarningMessage) -> str:
- """Convert a warnings.WarningMessage to a string."""
+ ihook.pytest_warning_recorded.call_historic(
+ kwargs=dict(
+ warning_message=warning_message,
+ nodeid=nodeid,
+ when=when,
+ 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(
- str(warn_msg),
+ str(warn_msg),
warning_message.category,
warning_message.filename,
warning_message.lineno,
@@ -93,7 +93,7 @@ def warning_record_to_str(warning_message: warnings.WarningMessage) -> str:
@pytest.hookimpl(hookwrapper=True, tryfirst=True)
-def pytest_runtest_protocol(item: Item) -> Generator[None, None, None]:
+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
):
@@ -101,7 +101,7 @@ def pytest_runtest_protocol(item: Item) -> Generator[None, None, None]:
@pytest.hookimpl(hookwrapper=True, tryfirst=True)
-def pytest_collection(session: Session) -> Generator[None, None, None]:
+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
@@ -110,9 +110,9 @@ def pytest_collection(session: Session) -> Generator[None, None, None]:
@pytest.hookimpl(hookwrapper=True)
-def pytest_terminal_summary(
- terminalreporter: TerminalReporter,
-) -> Generator[None, None, None]:
+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
@@ -120,20 +120,20 @@ def pytest_terminal_summary(
yield
-@pytest.hookimpl(hookwrapper=True)
-def pytest_sessionfinish(session: Session) -> Generator[None, None, None]:
- config = session.config
- with catch_warnings_for_item(
- config=config, ihook=config.hook, when="config", item=None
- ):
- yield
-
-
-@pytest.hookimpl(hookwrapper=True)
-def pytest_load_initial_conftests(
- early_config: "Config",
-) -> Generator[None, None, None]:
- with catch_warnings_for_item(
- config=early_config, ihook=early_config.hook, when="config", item=None
- ):
- yield
+@pytest.hookimpl(hookwrapper=True)
+def pytest_sessionfinish(session: Session) -> Generator[None, None, None]:
+ config = session.config
+ with catch_warnings_for_item(
+ config=config, ihook=config.hook, when="config", item=None
+ ):
+ yield
+
+
+@pytest.hookimpl(hookwrapper=True)
+def pytest_load_initial_conftests(
+ early_config: "Config",
+) -> Generator[None, None, None]:
+ with catch_warnings_for_item(
+ config=early_config, ihook=early_config.hook, when="config", item=None
+ ):
+ yield