Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[self tests] test_isort_should_warn_on_empty_custom_config_issue_1433 fails against Pytest 8 #2234

Open
stanislavlevin opened this issue Feb 15, 2024 · 0 comments · May be fixed by #2235
Open

Comments

@stanislavlevin
Copy link

______________ test_isort_should_warn_on_empty_custom_config_issue_1433 ______________

tmpdir = local('/usr/src/tmp/pytest-of-builder/pytest-3/test_isort_should_warn_on_empt0')

    def test_isort_should_warn_on_empty_custom_config_issue_1433(tmpdir):
        """Feedback should be provided when a user provides a custom settings file that has no
        discoverable configuration.
        See: https://github.com/PyCQA/isort/issues/1433
        """
        settings_file = tmpdir.join(".custom.cfg")
        settings_file.write(
            """
    [settings]
    quiet = true
    """
        )
        with pytest.warns(UserWarning):
            assert not Config(settings_file=str(settings_file)).quiet
    
        settings_file.write(
            """
    [isort]
    quiet = true
    """
        )
>       with pytest.warns(None) as warning:  # type: ignore

tests/unit/test_ticketed_features.py:632: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = WarningsChecker(record=True), expected_warning = None, match_expr = None

    def __init__(
        self,
        expected_warning: Optional[
            Union[Type[Warning], Tuple[Type[Warning], ...]]
        ] = Warning,
        match_expr: Optional[Union[str, Pattern[str]]] = None,
        *,
        _ispytest: bool = False,
    ) -> None:
        check_ispytest(_ispytest)
        super().__init__(_ispytest=True)
    
        msg = "exceptions must be derived from Warning, not %s"
        if expected_warning is None:
>           warnings.warn(WARNS_NONE_ARG, stacklevel=4)
E           pytest.PytestRemovedIn8Warning: Passing None has been deprecated.
E           See https://docs.pytest.org/en/latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests for alternatives in common use cases.

/usr/lib/python3/site-packages/_pytest/recwarn.py:279: PytestRemovedIn8Warning

With Pytest 7:

https://docs.pytest.org/en/stable/changelog.html#pytest-7-0-0rc1-2021-12-06

#8645: pytest.warns(None) is now deprecated because many people used
it to mean “this code does not emit warnings”, but it actually had the
effect of checking that the code emits at least one warning of any
type-like pytest.warns() or pytest.warns(Warning)

With Pytest 8 it's the error.

https://docs.pytest.org/en/latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests

stanislavlevin added a commit to stanislavlevin/isort that referenced this issue Feb 15, 2024
With Pytest 7:

https://docs.pytest.org/en/stable/changelog.html#pytest-7-0-0rc1-2021-12-06

> #8645: pytest.warns(None) is now deprecated because many people used
  it to mean “this code does not emit warnings”, but it actually had the
  effect of checking that the code emits at least one warning of any
  type-like pytest.warns() or pytest.warns(Warning)

With Pytest 8 it's the error.

Changed according to the documentation:
https://docs.pytest.org/en/latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests

Fixes: PyCQA#2234
Signed-off-by: Stanislav Levin <slev@altlinux.org>
@stanislavlevin stanislavlevin linked a pull request Feb 15, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant