@@ -263,12 +263,16 @@ def _check_f(base, f):
263
263
264
264
@async_mark ()
265
265
@td .check_file_leaks
266
- async def test_tab_complete_warning (self , ip ):
266
+ async def test_tab_complete_warning (self , ip , frame_or_series ):
267
267
# GH 16409
268
268
pytest .importorskip ("IPython" , minversion = "6.0.0" )
269
269
from IPython .core .completer import provisionalcompleter
270
270
271
- code = "from pandas import DataFrame; df = DataFrame()"
271
+ if frame_or_series is DataFrame :
272
+ code = "from pandas import DataFrame; obj = DataFrame()"
273
+ else :
274
+ code = "from pandas import Series; obj = Series(dtype=object)"
275
+
272
276
await ip .run_code (code )
273
277
274
278
# TODO: remove it when Ipython updates
@@ -283,7 +287,7 @@ async def test_tab_complete_warning(self, ip):
283
287
)
284
288
with warning :
285
289
with provisionalcompleter ("ignore" ):
286
- list (ip .Completer .completions ("df ." , 1 ))
290
+ list (ip .Completer .completions ("obj ." , 1 ))
287
291
288
292
def test_attrs (self ):
289
293
df = DataFrame ({"A" : [2 , 3 ]})
@@ -294,31 +298,37 @@ def test_attrs(self):
294
298
assert result .attrs == {"version" : 1 }
295
299
296
300
@pytest .mark .parametrize ("allows_duplicate_labels" , [True , False , None ])
297
- def test_set_flags (self , allows_duplicate_labels ):
298
- df = DataFrame ({"A" : [1 , 2 ]})
299
- result = df .set_flags (allows_duplicate_labels = allows_duplicate_labels )
301
+ def test_set_flags (self , allows_duplicate_labels , frame_or_series ):
302
+ obj = DataFrame ({"A" : [1 , 2 ]})
303
+ key = (0 , 0 )
304
+ if frame_or_series is Series :
305
+ obj = obj ["A" ]
306
+ key = 0
307
+
308
+ result = obj .set_flags (allows_duplicate_labels = allows_duplicate_labels )
309
+
300
310
if allows_duplicate_labels is None :
301
311
# We don't update when it's not provided
302
312
assert result .flags .allows_duplicate_labels is True
303
313
else :
304
314
assert result .flags .allows_duplicate_labels is allows_duplicate_labels
305
315
306
316
# We made a copy
307
- assert df is not result
317
+ assert obj is not result
308
318
309
- # We didn't mutate df
310
- assert df .flags .allows_duplicate_labels is True
319
+ # We didn't mutate obj
320
+ assert obj .flags .allows_duplicate_labels is True
311
321
312
322
# But we didn't copy data
313
- result .iloc [0 , 0 ] = 0
314
- assert df .iloc [0 , 0 ] == 0
323
+ result .iloc [key ] = 0
324
+ assert obj .iloc [key ] == 0
315
325
316
326
# Now we do copy.
317
- result = df .set_flags (
327
+ result = obj .set_flags (
318
328
copy = True , allows_duplicate_labels = allows_duplicate_labels
319
329
)
320
- result .iloc [0 , 0 ] = 10
321
- assert df .iloc [0 , 0 ] == 0
330
+ result .iloc [key ] = 10
331
+ assert obj .iloc [key ] == 0
322
332
323
333
@skip_if_no ("jinja2" )
324
334
def test_constructor_expanddim_lookup (self ):
0 commit comments