Skip to content

Commit 69fd10e

Browse files
committed
Add test for setting copy, also change existing tests
to avoid SettingWithCopyError where not desired
1 parent 0ab36b1 commit 69fd10e

File tree

2 files changed

+29
-8
lines changed

2 files changed

+29
-8
lines changed

pandas/tests/test_series.py

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -569,7 +569,6 @@ def setUp(self):
569569

570570
self.ts = _ts.copy()
571571
self.ts.name = 'ts'
572-
573572
self.series = tm.makeStringSeries()
574573
self.series.name = 'series'
575574

@@ -1361,10 +1360,11 @@ def test_slice(self):
13611360
self.assertTrue(tm.equalContents(numSliceEnd,
13621361
np.array(self.series)[-10:]))
13631362

1364-
# test return view
1365-
sl = self.series[10:20]
1366-
sl[:] = 0
1367-
self.assertTrue((self.series[10:20] == 0).all())
1363+
with pd.option_context('chained_assignment', 'warn'):
1364+
# test return view
1365+
sl = self.series[10:20]
1366+
sl[:] = 0
1367+
self.assertTrue((self.series[10:20] == 0).all())
13681368

13691369
def test_slice_can_reorder_not_uniquely_indexed(self):
13701370
s = Series(1, index=['a', 'a', 'b', 'b', 'c'])
@@ -1418,6 +1418,8 @@ def test_slice_float64(self):
14181418
tm.assert_frame_equal(result, expected)
14191419

14201420
def test_setitem(self):
1421+
import warnings
1422+
14211423
self.ts[self.ts.index[5]] = np.NaN
14221424
self.ts[[1, 2, 17]] = np.NaN
14231425
self.ts[6] = np.NaN
@@ -1445,9 +1447,23 @@ def test_setitem(self):
14451447
expected = pd.TimeSeries(47, [pd.datetime(2012, 1, 1)])
14461448
assert_series_equal(series, expected)
14471449

1448-
series = pd.TimeSeries(0, pd.date_range('2011-01-01', '2011-01-01'))[:0]
1449-
series[pd.datetime(2012, 1, 1)] = 47
1450-
assert_series_equal(series, expected)
1450+
series = pd.TimeSeries(0, pd.date_range('2011-01-01', '2011-01-01'))
1451+
series2 = series[:0]
1452+
1453+
def f():
1454+
series2[pd.datetime(2012, 1, 1)] = 47
1455+
1456+
with pd.option_context('chained_assignment', 'raise'):
1457+
self.assertRaises(com.SettingWithCopyError, f)
1458+
1459+
with pd.option_context('chained_assignment', 'warn'):
1460+
f()
1461+
assert_series_equal(series2, expected)
1462+
# also check that series is not changed.
1463+
assert_series_equal(
1464+
series,
1465+
pd.TimeSeries(0, pd.date_range('2011-01-01', '2011-01-01'))
1466+
)
14511467

14521468
def test_setitem_dtypes(self):
14531469

@@ -4826,8 +4842,10 @@ def test_rank(self):
48264842
tm._skip_if_no_scipy()
48274843
from scipy.stats import rankdata
48284844

4845+
pd.set_option('chained_assignment',None)
48294846
self.ts[::2] = np.nan
48304847
self.ts[:10][::3] = 4.
4848+
pd.set_option('chained_assignment','raise')
48314849

48324850
ranks = self.ts.rank()
48334851
oranks = self.ts.astype('O').rank()

pandas/tseries/tests/test_period.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1669,7 +1669,10 @@ def test_index_duplicate_periods(self):
16691669
result = ts[2007]
16701670
expected = ts[1:3]
16711671
assert_series_equal(result, expected)
1672+
pd.set_option('chained_assignment', None)
16721673
result[:] = 1
1674+
pd.set_option('chained_assignment', 'raise')
1675+
16731676
self.assertTrue((ts[1:3] == 1).all())
16741677

16751678
# not monotonic

0 commit comments

Comments
 (0)