You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.1 KiB

import warnings
import pytest
from pandas.util._exceptions import rewrite_warning
import pandas._testing as tm
@pytest.mark.parametrize(
"target_category, target_message, hit",
[
(FutureWarning, "Target message", True),
(FutureWarning, "Target", True),
(FutureWarning, "get mess", True),
(FutureWarning, "Missed message", False),
(DeprecationWarning, "Target message", False),
],
)
@pytest.mark.parametrize(
"new_category",
[
None,
DeprecationWarning,
],
)
def test_rewrite_warning(target_category, target_message, hit, new_category):
new_message = "Rewritten message"
if hit:
expected_category = new_category if new_category else target_category
expected_message = new_message
else:
expected_category = FutureWarning
expected_message = "Target message"
with tm.assert_produces_warning(expected_category, match=expected_message):
with rewrite_warning(
target_message, target_category, new_message, new_category
):
warnings.warn(message="Target message", category=FutureWarning)