From b384b2d5d5f28d7ad330494eca4582fa4bd8e60b Mon Sep 17 00:00:00 2001 From: Mitko Masarliev Date: Mon, 18 Dec 2017 10:05:50 +0200 Subject: [PATCH 1/4] BC fix --- homeassistant/components/device_tracker/__init__.py | 9 ++++++--- tests/components/device_tracker/test_init.py | 12 ++++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/device_tracker/__init__.py b/homeassistant/components/device_tracker/__init__.py index 28505900f1455..d76da676ea1d9 100644 --- a/homeassistant/components/device_tracker/__init__.py +++ b/homeassistant/components/device_tracker/__init__.py @@ -88,7 +88,7 @@ })) PLATFORM_SCHEMA = cv.PLATFORM_SCHEMA.extend({ vol.Optional(CONF_SCAN_INTERVAL): cv.time_period, - vol.Optional(CONF_TRACK_NEW, default=DEFAULT_TRACK_NEW): cv.boolean, + vol.Optional(CONF_TRACK_NEW): cv.boolean, vol.Optional(CONF_CONSIDER_HOME, default=DEFAULT_CONSIDER_HOME): vol.All( cv.time_period, cv.positive_timedelta), @@ -131,8 +131,10 @@ def async_setup(hass: HomeAssistantType, config: ConfigType): conf = config.get(DOMAIN, []) conf = conf[0] if conf else {} consider_home = conf.get(CONF_CONSIDER_HOME, DEFAULT_CONSIDER_HOME) - track_new = conf.get(CONF_TRACK_NEW, DEFAULT_TRACK_NEW) + defaults = conf.get(CONF_NEW_DEVICE_DEFAULTS, {}) + track_new = conf.get(CONF_TRACK_NEW) if conf.get(CONF_TRACK_NEW) \ + is not None else defaults.get(CONF_TRACK_NEW, DEFAULT_TRACK_NEW) devices = yield from async_load_config(yaml_path, hass, consider_home) tracker = DeviceTracker( @@ -227,7 +229,8 @@ def __init__(self, hass: HomeAssistantType, consider_home: timedelta, self.devices = {dev.dev_id: dev for dev in devices} self.mac_to_dev = {dev.mac: dev for dev in devices if dev.mac} self.consider_home = consider_home - self.track_new = defaults.get(CONF_TRACK_NEW, track_new) + self.track_new = track_new if track_new is not None \ + else defaults.get(CONF_TRACK_NEW, DEFAULT_TRACK_NEW) self.defaults = defaults self.group = None self._is_updating = asyncio.Lock(loop=hass.loop) diff --git a/tests/components/device_tracker/test_init.py b/tests/components/device_tracker/test_init.py index 34c7ecf465db9..0c771e450d105 100644 --- a/tests/components/device_tracker/test_init.py +++ b/tests/components/device_tracker/test_init.py @@ -675,6 +675,18 @@ def test_default_hide_if_away_is_used(self): assert len(config) == 1 self.assertTrue(config[0].hidden) + def test_backward_compatibility_for_track_new(self): + """Test that default track_new is used.""" + tracker = device_tracker.DeviceTracker( + self.hass, timedelta(seconds=60), False, + {device_tracker.CONF_TRACK_NEW: True}, []) + tracker.see(dev_id=13) + self.hass.block_till_done() + config = device_tracker.load_config(self.yaml_devices, self.hass, + timedelta(seconds=0)) + assert len(config) == 1 + self.assertFalse(config[0].track) + @asyncio.coroutine def test_async_added_to_hass(hass): From 0d66e9d0ed55490b2d5c9fa9967554b6d02eba51 Mon Sep 17 00:00:00 2001 From: Mitko Masarliev Date: Mon, 18 Dec 2017 13:33:28 +0200 Subject: [PATCH 2/4] more tests --- tests/components/device_tracker/test_init.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/tests/components/device_tracker/test_init.py b/tests/components/device_tracker/test_init.py index 0c771e450d105..2d0764ec58547 100644 --- a/tests/components/device_tracker/test_init.py +++ b/tests/components/device_tracker/test_init.py @@ -676,7 +676,7 @@ def test_default_hide_if_away_is_used(self): self.assertTrue(config[0].hidden) def test_backward_compatibility_for_track_new(self): - """Test that default track_new is used.""" + """Test backward compatibility for track new.""" tracker = device_tracker.DeviceTracker( self.hass, timedelta(seconds=60), False, {device_tracker.CONF_TRACK_NEW: True}, []) @@ -687,6 +687,18 @@ def test_backward_compatibility_for_track_new(self): assert len(config) == 1 self.assertFalse(config[0].track) + def test_old_style_track_new_is_skipped(self): + """Test old style config is skipped.""" + tracker = device_tracker.DeviceTracker( + self.hass, timedelta(seconds=60), None, + {device_tracker.CONF_TRACK_NEW: False}, []) + tracker.see(dev_id=14) + self.hass.block_till_done() + config = device_tracker.load_config(self.yaml_devices, self.hass, + timedelta(seconds=0)) + assert len(config) == 1 + self.assertFalse(config[0].track) + @asyncio.coroutine def test_async_added_to_hass(hass): From 10e088969040e077a93c7d3feaf1beac85cca6d6 Mon Sep 17 00:00:00 2001 From: masarliev Date: Tue, 26 Dec 2017 16:29:09 +0200 Subject: [PATCH 3/4] inline if change --- homeassistant/components/device_tracker/__init__.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/device_tracker/__init__.py b/homeassistant/components/device_tracker/__init__.py index d76da676ea1d9..8c563fda34cbc 100644 --- a/homeassistant/components/device_tracker/__init__.py +++ b/homeassistant/components/device_tracker/__init__.py @@ -133,8 +133,9 @@ def async_setup(hass: HomeAssistantType, config: ConfigType): consider_home = conf.get(CONF_CONSIDER_HOME, DEFAULT_CONSIDER_HOME) defaults = conf.get(CONF_NEW_DEVICE_DEFAULTS, {}) - track_new = conf.get(CONF_TRACK_NEW) if conf.get(CONF_TRACK_NEW) \ - is not None else defaults.get(CONF_TRACK_NEW, DEFAULT_TRACK_NEW) + track_new = conf.get(CONF_TRACK_NEW) + if track_new is None: + track_new = defaults.get(CONF_TRACK_NEW, DEFAULT_TRACK_NEW) devices = yield from async_load_config(yaml_path, hass, consider_home) tracker = DeviceTracker( From d2f6567d8e567e923a49900f78ef292d51b963a2 Mon Sep 17 00:00:00 2001 From: Mitko Masarliev Date: Tue, 26 Dec 2017 16:29:09 +0200 Subject: [PATCH 4/4] inline if change --- homeassistant/components/device_tracker/__init__.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/device_tracker/__init__.py b/homeassistant/components/device_tracker/__init__.py index d76da676ea1d9..8c563fda34cbc 100644 --- a/homeassistant/components/device_tracker/__init__.py +++ b/homeassistant/components/device_tracker/__init__.py @@ -133,8 +133,9 @@ def async_setup(hass: HomeAssistantType, config: ConfigType): consider_home = conf.get(CONF_CONSIDER_HOME, DEFAULT_CONSIDER_HOME) defaults = conf.get(CONF_NEW_DEVICE_DEFAULTS, {}) - track_new = conf.get(CONF_TRACK_NEW) if conf.get(CONF_TRACK_NEW) \ - is not None else defaults.get(CONF_TRACK_NEW, DEFAULT_TRACK_NEW) + track_new = conf.get(CONF_TRACK_NEW) + if track_new is None: + track_new = defaults.get(CONF_TRACK_NEW, DEFAULT_TRACK_NEW) devices = yield from async_load_config(yaml_path, hass, consider_home) tracker = DeviceTracker(