def test_proximity(self): """Test the proximity.""" assert proximity.setup(self.hass, { 'proximity': { 'zone': 'home', 'ignored_zones': { 'work' }, 'devices': { 'device_tracker.test1', 'device_tracker.test2' }, 'tolerance': '1' } }) state = self.hass.states.get('proximity.home') assert state.state == 'not set' assert state.attributes.get('nearest') == 'not set' assert state.attributes.get('dir_of_travel') == 'not set' self.hass.states.set('proximity.home', '0') self.hass.pool.block_till_done() state = self.hass.states.get('proximity.home') assert state.state == '0'
def test_device_tracker_test1_away(self): """Test for tracker state away.""" assert proximity.setup(self.hass, { 'proximity': { 'zone': 'home', 'ignored_zones': { 'work' }, 'devices': { 'device_tracker.test1' }, 'tolerance': '1' } }) self.hass.states.set( 'device_tracker.test1', 'not_home', { 'friendly_name': 'test1', 'latitude': 20.1, 'longitude': 10.1 }) self.hass.pool.block_till_done() state = self.hass.states.get('proximity.home') assert state.attributes.get('nearest') == 'test1' assert state.attributes.get('dir_of_travel') == 'unknown'
def test_no_devices_in_config(self): """Test for missing devices in configuration.""" assert not proximity.setup(self.hass, { 'proximity': { 'zone': 'home', 'ignored_zones': { 'work' }, 'tolerance': '1' } })
def test_no_ignored_zones_in_config(self): """Test for ignored zones in configuration.""" assert proximity.setup(self.hass, { 'proximity': { 'zone': 'home', 'devices': { 'device_tracker.test1', 'device_tracker.test2' }, 'tolerance': '1' } })
def test_no_zone_in_config(self): """Test for missing zone in configuration.""" assert proximity.setup(self.hass, { 'proximity': { 'ignored_zones': { 'work' }, 'devices': { 'device_tracker.test1', 'device_tracker.test2' }, 'tolerance': '1' } })
def test_device_trackers_in_zone(self): """Test for trackers in zone.""" assert proximity.setup(self.hass, { 'proximity': { 'zone': 'home', 'ignored_zones': { 'work' }, 'devices': { 'device_tracker.test1', 'device_tracker.test2' }, 'tolerance': '1' } }) self.hass.states.set( 'device_tracker.test1', 'home', { 'friendly_name': 'test1', 'latitude': 2.1, 'longitude': 1.1 }) self.hass.pool.block_till_done() self.hass.states.set( 'device_tracker.test2', 'home', { 'friendly_name': 'test2', 'latitude': 2.1, 'longitude': 1.1 }) self.hass.pool.block_till_done() state = self.hass.states.get('proximity.home') assert state.state == '0' assert ((state.attributes.get('nearest') == 'test1, test2') or (state.attributes.get('nearest') == 'test2, test1')) assert state.attributes.get('dir_of_travel') == 'arrived'
def test_device_tracker_test1_no_coordinates(self): """Test for tracker with no coordinates.""" assert proximity.setup(self.hass, { 'proximity': { 'zone': 'home', 'ignored_zones': { 'work' }, 'devices': { 'device_tracker.test1' }, 'tolerance': '1' } }) self.hass.states.set( 'device_tracker.test1', 'not_home', { 'friendly_name': 'test1' }) self.hass.pool.block_till_done() state = self.hass.states.get('proximity.home') assert state.attributes.get('nearest') == 'not set' assert state.attributes.get('dir_of_travel') == 'not set'
def test_all_device_trackers_in_ignored_zone(self): """Test for tracker in ignored zone.""" assert proximity.setup(self.hass, { 'proximity': { 'zone': 'home', 'ignored_zones': { 'work' }, 'devices': { 'device_tracker.test1' } } }) self.hass.states.set( 'device_tracker.test1', 'work', { 'friendly_name': 'test1' }) self.hass.pool.block_till_done() state = self.hass.states.get('proximity.home') assert state.state == 'not set' assert state.attributes.get('nearest') == 'not set' assert state.attributes.get('dir_of_travel') == 'not set'