Skip to content

Commit 4bf94a0

Browse files
committed
wip
1 parent 2df6f67 commit 4bf94a0

File tree

1 file changed

+26
-13
lines changed

1 file changed

+26
-13
lines changed

pandas/tests/series/indexing/test_indexing.py

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -433,27 +433,41 @@ def test_setitem_dict_and_set_disallowed_multiindex(self, key):
433433
class TestSetitemValidation:
434434
# This is adapted from pandas/tests/arrays/masked/test_indexing.py
435435
# but checks for warnings instead of errors.
436-
def _check_setitem_invalid(self, ser, invalid, indexer, warn):
437-
msg = "Setting an item of incompatible dtype is deprecated"
438-
msg = re.escape(msg)
439-
436+
def _check_setitem_invalid(self, ser, invalid, indexer):
440437
orig_ser = ser.copy()
441438

442-
with tm.assert_produces_warning(warn, match=msg):
439+
with pytest.raises(TypeError, match="Invalid value"):
443440
ser[indexer] = invalid
444441
ser = orig_ser.copy()
445442

446-
with tm.assert_produces_warning(warn, match=msg):
443+
with pytest.raises(TypeError, match="Invalid value"):
447444
ser.iloc[indexer] = invalid
448445
ser = orig_ser.copy()
449446

450-
with tm.assert_produces_warning(warn, match=msg):
447+
with pytest.raises(TypeError, match="Invalid value"):
451448
ser.loc[indexer] = invalid
452449
ser = orig_ser.copy()
453450

454-
with tm.assert_produces_warning(warn, match=msg):
451+
with pytest.raises(TypeError, match="Invalid value"):
455452
ser[:] = invalid
456453

454+
def _check_setitem_valid(self, ser, invalid, indexer):
455+
msg = "Setting an item of incompatible dtype is deprecated"
456+
msg = re.escape(msg)
457+
458+
orig_ser = ser.copy()
459+
460+
ser[indexer] = invalid
461+
ser = orig_ser.copy()
462+
463+
ser.iloc[indexer] = invalid
464+
ser = orig_ser.copy()
465+
466+
ser.loc[indexer] = invalid
467+
ser = orig_ser.copy()
468+
469+
ser[:] = invalid
470+
457471
_invalid_scalars = [
458472
1 + 2j,
459473
"True",
@@ -471,20 +485,19 @@ def _check_setitem_invalid(self, ser, invalid, indexer, warn):
471485
@pytest.mark.parametrize("indexer", _indexers)
472486
def test_setitem_validation_scalar_bool(self, invalid, indexer):
473487
ser = Series([True, False, False], dtype="bool")
474-
self._check_setitem_invalid(ser, invalid, indexer, FutureWarning)
488+
self._check_setitem_invalid(ser, invalid, indexer)
475489

476490
@pytest.mark.parametrize("invalid", _invalid_scalars + [True, 1.5, np.float64(1.5)])
477491
@pytest.mark.parametrize("indexer", _indexers)
478492
def test_setitem_validation_scalar_int(self, invalid, any_int_numpy_dtype, indexer):
479493
ser = Series([1, 2, 3], dtype=any_int_numpy_dtype)
480494
if isna(invalid) and invalid is not NaT and not np.isnat(invalid):
481-
warn = None
495+
self._check_setitem_valid(ser, invalid, indexer)
482496
else:
483-
warn = FutureWarning
484-
self._check_setitem_invalid(ser, invalid, indexer, warn)
497+
self._check_setitem_invalid(ser, invalid, indexer)
485498

486499
@pytest.mark.parametrize("invalid", _invalid_scalars + [True])
487500
@pytest.mark.parametrize("indexer", _indexers)
488501
def test_setitem_validation_scalar_float(self, invalid, float_numpy_dtype, indexer):
489502
ser = Series([1, 2, None], dtype=float_numpy_dtype)
490-
self._check_setitem_invalid(ser, invalid, indexer, FutureWarning)
503+
self._check_setitem_invalid(ser, invalid, indexer)

0 commit comments

Comments
 (0)