| import warnings | |
| import numpy as np | |
| import pytest | |
| from sklearn.utils import Bunch | |
| def test_bunch_attribute_deprecation(): | |
| """Check that bunch raises deprecation message with `__getattr__`.""" | |
| bunch = Bunch() | |
| values = np.asarray([1, 2, 3]) | |
| msg = ( | |
| "Key: 'values', is deprecated in 1.3 and will be " | |
| "removed in 1.5. Please use 'grid_values' instead" | |
| ) | |
| bunch._set_deprecated( | |
| values, new_key="grid_values", deprecated_key="values", warning_message=msg | |
| ) | |
| with warnings.catch_warnings(): | |
| # Does not warn for "grid_values" | |
| warnings.simplefilter("error") | |
| v = bunch["grid_values"] | |
| assert v is values | |
| with pytest.warns(FutureWarning, match=msg): | |
| # Warns for "values" | |
| v = bunch["values"] | |
| assert v is values | |