|
""" |
|
Check the numpy config is valid. |
|
""" |
|
from unittest.mock import patch |
|
|
|
import pytest |
|
|
|
import numpy as np |
|
|
|
pytestmark = pytest.mark.skipif( |
|
not hasattr(np.__config__, "_built_with_meson"), |
|
reason="Requires Meson builds", |
|
) |
|
|
|
|
|
class TestNumPyConfigs: |
|
REQUIRED_CONFIG_KEYS = [ |
|
"Compilers", |
|
"Machine Information", |
|
"Python Information", |
|
] |
|
|
|
@patch("numpy.__config__._check_pyyaml") |
|
def test_pyyaml_not_found(self, mock_yaml_importer): |
|
mock_yaml_importer.side_effect = ModuleNotFoundError() |
|
with pytest.warns(UserWarning): |
|
np.show_config() |
|
|
|
def test_dict_mode(self): |
|
config = np.show_config(mode="dicts") |
|
|
|
assert isinstance(config, dict) |
|
assert all(key in config for key in self.REQUIRED_CONFIG_KEYS), ( |
|
"Required key missing," |
|
" see index of `False` with `REQUIRED_CONFIG_KEYS`" |
|
) |
|
|
|
def test_invalid_mode(self): |
|
with pytest.raises(AttributeError): |
|
np.show_config(mode="foo") |
|
|
|
def test_warn_to_add_tests(self): |
|
assert len(np.__config__.DisplayModes) == 2, ( |
|
"New mode detected," |
|
" please add UT if applicable and increment this count" |
|
) |
|
|