diff --git a/ChangeLog b/ChangeLog index f02a58516c..1a35b325cf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -65,6 +65,10 @@ Release date: TBA Closes #1735 +* Suppress ``UserWarning`` when finding module specs. + + Closes pylint-dev/pylint#7906 + What's New in astroid 2.15.2? ============================= diff --git a/astroid/interpreter/_import/spec.py b/astroid/interpreter/_import/spec.py index 9e08934541..f17ce51f92 100644 --- a/astroid/interpreter/_import/spec.py +++ b/astroid/interpreter/_import/spec.py @@ -13,6 +13,7 @@ import pathlib import sys import types +import warnings import zipimport from collections.abc import Iterator, Sequence from pathlib import Path @@ -147,7 +148,9 @@ def find_module( ) else: try: - spec = importlib.util.find_spec(modname) + with warnings.catch_warnings(): + warnings.filterwarnings("ignore", category=UserWarning) + spec = importlib.util.find_spec(modname) if ( spec and spec.loader # type: ignore[comparison-overlap] # noqa: E501 diff --git a/tests/test_manager.py b/tests/test_manager.py index 16f1be807b..4f76d09c39 100644 --- a/tests/test_manager.py +++ b/tests/test_manager.py @@ -7,6 +7,7 @@ import sys import time import unittest +import warnings from collections.abc import Iterator from contextlib import contextmanager from unittest import mock @@ -383,6 +384,15 @@ def test_raises_exception_for_empty_modname(self) -> None: self.manager.ast_from_module_name(None) +class IsolatedAstroidManagerTest(resources.AstroidCacheSetupMixin, unittest.TestCase): + def test_no_user_warning(self): + mgr = manager.AstroidManager() + with warnings.catch_warnings(): + warnings.filterwarnings("error", category=UserWarning) + mgr.ast_from_module_name("setuptools") + mgr.ast_from_module_name("pip") + + class BorgAstroidManagerTC(unittest.TestCase): def test_borg(self) -> None: """Test that the AstroidManager is really a borg, i.e. that two different