Skip to content

Commit 7a31d11

Browse files
author
Martin Journois
committed
TST: ADD test on Series index auto-completion
1 parent 7b5518f commit 7a31d11

File tree

1 file changed

+34
-1
lines changed

1 file changed

+34
-1
lines changed

pandas/tests/series/test_api.py

+34-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from pandas import Index, Series, DataFrame, date_range
1111
from pandas.core.indexes.datetimes import Timestamp
1212

13-
from pandas.compat import range
13+
from pandas.compat import range, lzip, isidentifier, string_types
1414
from pandas import compat
1515
import pandas.io.formats.printing as printing
1616
from pandas.util.testing import (assert_series_equal,
@@ -234,6 +234,39 @@ def test_tab_completion(self):
234234
assert 'str' not in dir(s)
235235
assert 'dt' in dir(s) # as it is a datetime categorical
236236

237+
def test_index_tab_completion(self):
238+
# dir contains string-like values of the Index.
239+
for index in [tm.makeUnicodeIndex(10),
240+
tm.makeStringIndex(100),
241+
tm.makeCategoricalIndex(100),
242+
Index(['foo', 'foo',
243+
'bar', 'bar',
244+
'baz', 'baz']),
245+
tm.makeDateIndex(100),
246+
tm.makePeriodIndex(100),
247+
tm.makeTimedeltaIndex(100),
248+
tm.makeIntIndex(100),
249+
tm.makeUIntIndex(100),
250+
tm.makeIntIndex(100),
251+
tm.makeFloatIndex(100),
252+
Index([True, False]),
253+
]:
254+
s = pd.Series(index=index)
255+
dir_s = dir(s)
256+
for x in s.index:
257+
assert (not isinstance(x, string_types) or
258+
not isidentifier(x) or x in dir_s)
259+
260+
# dir contains string-like values of the MultiIndex first level.
261+
for index in [pd.MultiIndex.from_tuples(lzip('ABCD', 'EFGH')),
262+
pd.MultiIndex.from_tuples(lzip([0, 1, 2, 3], 'EFGH')),
263+
]:
264+
s = pd.Series(index=index)
265+
dir_s = dir(s)
266+
for x in s.index:
267+
assert (not isinstance(x[0], string_types) or
268+
not isidentifier(x[0]) or x[0] in dir_s)
269+
237270
def test_not_hashable(self):
238271
s_empty = Series()
239272
s = Series([1])

0 commit comments

Comments
 (0)