Skip to content

Commit 21620ad

Browse files
committed
TST: Add droplevel tests for corner cases
1 parent 84fcda3 commit 21620ad

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

pandas/tests/indexes/test_base.py

+14
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,20 @@ def test_constructor_int_dtype_nan(self):
245245
result = Index(data, dtype='float')
246246
tm.assert_index_equal(result, expected)
247247

248+
def test_droplevel(self):
249+
# GH 21115
250+
index = Index([0, 1, 2, 3], name='only')
251+
252+
assert index.droplevel([]).equals(index)
253+
254+
for level in 'only', ['only']:
255+
with pytest.raises(ValueError):
256+
index.droplevel(level)
257+
258+
for level in 'wrong', ['wrong']:
259+
with pytest.raises(KeyError):
260+
index.droplevel(level)
261+
248262
@pytest.mark.parametrize("dtype", ['int64', 'uint64'])
249263
def test_constructor_int_dtype_nan_raises(self, dtype):
250264
# see gh-15187

pandas/tests/indexes/test_multi.py

+11-1
Original file line numberDiff line numberDiff line change
@@ -2078,7 +2078,7 @@ def test_droplevel_with_names(self):
20782078
expected = index.droplevel(1)
20792079
assert dropped.equals(expected)
20802080

2081-
def test_droplevel_multiple(self):
2081+
def test_droplevel_list(self):
20822082
index = MultiIndex(
20832083
levels=[Index(lrange(4)), Index(lrange(4)), Index(lrange(4))],
20842084
labels=[np.array([0, 0, 1, 2, 2, 2, 3, 3]), np.array(
@@ -2089,6 +2089,16 @@ def test_droplevel_multiple(self):
20892089
expected = index[:2].droplevel(2).droplevel(0)
20902090
assert dropped.equals(expected)
20912091

2092+
dropped = index[:2].droplevel([])
2093+
expected = index[:2]
2094+
assert dropped.equals(expected)
2095+
2096+
with pytest.raises(ValueError):
2097+
index[:2].droplevel(['one', 'two', 'three'])
2098+
2099+
with pytest.raises(KeyError):
2100+
index[:2].droplevel(['one', 'four'])
2101+
20922102
def test_drop_not_lexsorted(self):
20932103
# GH 12078
20942104

0 commit comments

Comments
 (0)