test_bunch.py 813 B

1234567891011121314151617181920212223242526272829303132
  1. import warnings
  2. import numpy as np
  3. import pytest
  4. from sklearn.utils import Bunch
  5. def test_bunch_attribute_deprecation():
  6. """Check that bunch raises deprecation message with `__getattr__`."""
  7. bunch = Bunch()
  8. values = np.asarray([1, 2, 3])
  9. msg = (
  10. "Key: 'values', is deprecated in 1.3 and will be "
  11. "removed in 1.5. Please use 'grid_values' instead"
  12. )
  13. bunch._set_deprecated(
  14. values, new_key="grid_values", deprecated_key="values", warning_message=msg
  15. )
  16. with warnings.catch_warnings():
  17. # Does not warn for "grid_values"
  18. warnings.simplefilter("error")
  19. v = bunch["grid_values"]
  20. assert v is values
  21. with pytest.warns(FutureWarning, match=msg):
  22. # Warns for "values"
  23. v = bunch["values"]
  24. assert v is values