Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions homeassistant/components/device_tracker/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -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),
Expand Down Expand Up @@ -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) \

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not a fan of inline if. Can you write it out?

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(
Expand Down Expand Up @@ -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)
Expand Down
24 changes: 24 additions & 0 deletions tests/components/device_tracker/test_init.py
Original file line number Diff line number Diff line change
Expand Up @@ -675,6 +675,30 @@ 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 backward compatibility for track new."""
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)

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):
Expand Down