diff --git a/pandas/tests/generic/test_frame.py b/pandas/tests/generic/test_frame.py index 7fe22e77c5bf3..d2418d56e66eb 100644 --- a/pandas/tests/generic/test_frame.py +++ b/pandas/tests/generic/test_frame.py @@ -1,4 +1,5 @@ from copy import deepcopy +from datetime import datetime from distutils.version import LooseVersion from operator import methodcaller @@ -280,3 +281,30 @@ def test_deepcopy_empty(self): empty_frame_copy = deepcopy(empty_frame) self._compare(empty_frame_copy, empty_frame) + + def test_datetime_after_setitem_with_at(self): + # This test covers the unexpected behaviour of datetimeField when using + # setitem on another column as reported in issue #6942 + + start = pd.to_datetime("20140401") + + result = pd.DataFrame( + index=pd.date_range(start, periods=1), columns=["timenow", "Live"] + ) + + result.at[start, "timenow"] = datetime.today() + + new_datetime = datetime.today() + + result.Live = True + + # Changing the value in "timenow" column after "Live" colunn is set to True. + result.at[start, "timenow"] = new_datetime + + expected = pd.DataFrame( + [[new_datetime, True]], + index=pd.date_range(start, periods=1), + columns=["timenow", "Live"], + ) + + tm.assert_frame_equal(result, expected)