From f8668075d0e8447a44e51d2b2fa12a6ba797920c Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 6 Dec 2015 09:09:18 -0800 Subject: [PATCH] Fix State.copy() --- homeassistant/core.py | 3 ++- tests/test_core.py | 10 +++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) 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'})