diff --git a/pandas/tests/indexes/interval/test_indexing.py b/pandas/tests/indexes/interval/test_indexing.py index 0e08a3f41b666..718136fca6c80 100644 --- a/pandas/tests/indexes/interval/test_indexing.py +++ b/pandas/tests/indexes/interval/test_indexing.py @@ -158,6 +158,15 @@ def test_get_loc_decreasing(self, values): expected = 0 assert result == expected + @pytest.mark.parametrize("key", [[5], (2, 3)]) + def test_get_loc_non_scalar_errors(self, key): + # GH 31117 + idx = IntervalIndex.from_tuples([(1, 3), (2, 4), (3, 5), (7, 10), (3, 10)]) + + msg = str(key) + with pytest.raises(InvalidIndexError, match=msg): + idx.get_loc(key) + class TestGetIndexer: @pytest.mark.parametrize( diff --git a/pandas/tests/indexes/interval/test_interval.py b/pandas/tests/indexes/interval/test_interval.py index 1b2bfa8573c21..3f29e6ce0beb6 100644 --- a/pandas/tests/indexes/interval/test_interval.py +++ b/pandas/tests/indexes/interval/test_interval.py @@ -19,6 +19,7 @@ ) import pandas._testing as tm import pandas.core.common as com +from pandas.core.indexes.base import InvalidIndexError @pytest.fixture(scope="class", params=[None, "foo"]) @@ -857,6 +858,17 @@ def test_is_all_dates(self): year_2017_index = pd.IntervalIndex([year_2017]) assert not year_2017_index.is_all_dates + @pytest.mark.parametrize("key", [[5], (2, 3)]) + def test_get_value_non_scalar_errors(self, key): + # GH 31117 + idx = IntervalIndex.from_tuples([(1, 3), (2, 4), (3, 5), (7, 10), (3, 10)]) + s = pd.Series(range(len(idx)), index=idx) + + msg = str(key) + with pytest.raises(InvalidIndexError, match=msg): + with tm.assert_produces_warning(FutureWarning): + idx.get_value(s, key) + def test_dir(): # GH#27571 dir(interval_index) should not raise