45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
"""
|
|
Check the SciPy config is valid.
|
|
"""
|
|
import scipy
|
|
import pytest
|
|
from unittest.mock import patch
|
|
|
|
pytestmark = pytest.mark.skipif(
|
|
not hasattr(scipy.__config__, "_built_with_meson"),
|
|
reason="Requires Meson builds",
|
|
)
|
|
|
|
|
|
class TestSciPyConfigs:
|
|
REQUIRED_CONFIG_KEYS = [
|
|
"Compilers",
|
|
"Machine Information",
|
|
"Python Information",
|
|
]
|
|
|
|
@patch("scipy.__config__._check_pyyaml")
|
|
def test_pyyaml_not_found(self, mock_yaml_importer):
|
|
mock_yaml_importer.side_effect = ModuleNotFoundError()
|
|
with pytest.warns(UserWarning):
|
|
scipy.show_config()
|
|
|
|
def test_dict_mode(self):
|
|
config = scipy.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):
|
|
scipy.show_config(mode="foo")
|
|
|
|
def test_warn_to_add_tests(self):
|
|
assert len(scipy.__config__.DisplayModes) == 2, (
|
|
"New mode detected,"
|
|
" please add UT if applicable and increment this count"
|
|
)
|