File size: 1,081 Bytes
fe41391 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
from importlib import import_module
from pkgutil import walk_packages
import matplotlib
import pytest
# Get the names of all matplotlib submodules,
# except for the unit tests and private modules.
module_names = [
m.name
for m in walk_packages(
path=matplotlib.__path__, prefix=f'{matplotlib.__name__}.'
)
if not m.name.startswith(__package__)
and not any(x.startswith('_') for x in m.name.split('.'))
]
@pytest.mark.parametrize('module_name', module_names)
@pytest.mark.filterwarnings('ignore::DeprecationWarning')
@pytest.mark.filterwarnings('ignore::ImportWarning')
def test_getattr(module_name):
"""
Test that __getattr__ methods raise AttributeError for unknown keys.
See #20822, #20855.
"""
try:
module = import_module(module_name)
except (ImportError, RuntimeError) as e:
# Skip modules that cannot be imported due to missing dependencies
pytest.skip(f'Cannot import {module_name} due to {e}')
key = 'THIS_SYMBOL_SHOULD_NOT_EXIST'
if hasattr(module, key):
delattr(module, key)
|