mirror of
https://github.com/kristoferssolo/School.git
synced 2025-10-21 20:10:38 +00:00
29 lines
978 B
Python
29 lines
978 B
Python
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.
|
|
module_names = [m.name for m in walk_packages(path=matplotlib.__path__,
|
|
prefix=f'{matplotlib.__name__}.')
|
|
if not m.name.startswith(__package__)]
|
|
|
|
|
|
@pytest.mark.parametrize('module_name', module_names)
|
|
@pytest.mark.filterwarnings('ignore::DeprecationWarning')
|
|
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)
|