diff --git a/homeassistant/core.py b/homeassistant/core.py index d7ec3abe458..85b16f07b83 100644 --- a/homeassistant/core.py +++ b/homeassistant/core.py @@ -381,7 +381,8 @@ class State(object): def copy(self): """ Creates a copy of itself. """ return State(self.entity_id, self.state, - dict(self.attributes), self.last_changed) + dict(self.attributes), self.last_changed, + self.last_updated) def as_dict(self): """ Converts State to a dict to be used within JSON. diff --git a/tests/test_core.py b/tests/test_core.py index bb59aac03fa..fee46fe2dd4 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -268,7 +268,15 @@ class TestState(unittest.TestCase): def test_copy(self): state = ha.State('domain.hello', 'world', {'some': 'attr'}) - self.assertEqual(state, state.copy()) + # Patch dt_util.utcnow() so we know last_updated got copied too + with patch('homeassistant.core.dt_util.utcnow', + return_value=dt_util.utcnow() + timedelta(seconds=10)): + copy = state.copy() + self.assertEqual(state.entity_id, copy.entity_id) + self.assertEqual(state.state, copy.state) + self.assertEqual(state.attributes, copy.attributes) + self.assertEqual(state.last_changed, copy.last_changed) + self.assertEqual(state.last_updated, copy.last_updated) def test_dict_conversion(self): state = ha.State('domain.hello', 'world', {'some': 'attr'})