Esempio n. 1
0
    def test_active_zone_skips_passive_zones(self):
        assert zone.setup(self.hass, {
            'zone': [
                {
                    'name': 'Passive Zone',
                    'latitude': 32.880600,
                    'longitude': -117.237561,
                    'radius': 250,
                    'passive': True
                },
            ]
        })

        active = zone.active_zone(self.hass, 32.880600, -117.237561)
        assert active is None

        assert zone.setup(self.hass, {
            'zone': [
                {
                    'name': 'Active Zone',
                    'latitude': 32.880800,
                    'longitude': -117.237561,
                    'radius': 500,
                },
            ]
        })

        active = zone.active_zone(self.hass, 32.880700, -117.237561)
        assert 'zone.active_zone' == active.entity_id
Esempio n. 2
0
    def setUp(self):  # pylint: disable=invalid-name
        self.hass = get_test_home_assistant()
        zone.setup(self.hass, {
            'zone': {
                'name': 'test',
                'latitude': 32.880837,
                'longitude': -117.237561,
                'radius': 250,
            }
        })

        self.calls = []

        def record_call(service):
            self.calls.append(service)

        self.hass.services.register('test', 'automation', record_call)
Esempio n. 3
0
    def setUp(self):  # pylint: disable=invalid-name
        self.hass = get_test_home_assistant()
        zone.setup(
            self.hass, {
                'zone': {
                    'name': 'test',
                    'latitude': 32.880837,
                    'longitude': -117.237561,
                    'radius': 250,
                }
            })

        self.calls = []

        def record_call(service):
            self.calls.append(service)

        self.hass.services.register('test', 'automation', record_call)
Esempio n. 4
0
    def setUp(self):  # pylint: disable=invalid-name
        """Setup things to be run when tests are started."""
        self.hass = get_test_home_assistant()
        self.hass.config.components.append('group')
        zone.setup(self.hass, {
            'zone': {
                'name': 'test',
                'latitude': 32.880837,
                'longitude': -117.237561,
                'radius': 250,
            }
        })

        self.calls = []

        def record_call(service):
            self.calls.append(service)

        self.hass.services.register('test', 'automation', record_call)
Esempio n. 5
0
    def test_active_zone_prefers_smaller_zone_if_same_distance(self):
        """Test zone size preferences."""
        latitude = 32.880600
        longitude = -117.237561
        assert zone.setup(
            self.hass, {
                'zone': [
                    {
                        'name': 'Small Zone',
                        'latitude': latitude,
                        'longitude': longitude,
                        'radius': 250,
                    },
                    {
                        'name': 'Big Zone',
                        'latitude': latitude,
                        'longitude': longitude,
                        'radius': 500,
                    },
                ]
            })

        active = zone.active_zone(self.hass, latitude, longitude)
        assert 'zone.small_zone' == active.entity_id

        assert zone.setup(
            self.hass, {
                'zone': [
                    {
                        'name': 'Smallest Zone',
                        'latitude': latitude,
                        'longitude': longitude,
                        'radius': 50,
                    },
                ]
            })

        active = zone.active_zone(self.hass, latitude, longitude)
        assert 'zone.smallest_zone' == active.entity_id
Esempio n. 6
0
    def test_active_zone_prefers_smaller_zone_if_same_distance(self):
        """Test zone size preferences."""
        latitude = 32.880600
        longitude = -117.237561
        assert zone.setup(self.hass, {
            'zone': [
                {
                    'name': 'Small Zone',
                    'latitude': latitude,
                    'longitude': longitude,
                    'radius': 250,
                },
                {
                    'name': 'Big Zone',
                    'latitude': latitude,
                    'longitude': longitude,
                    'radius': 500,
                },
            ]
        })

        active = zone.active_zone(self.hass, latitude, longitude)
        assert 'zone.small_zone' == active.entity_id

        assert zone.setup(self.hass, {
            'zone': [
                {
                    'name': 'Smallest Zone',
                    'latitude': latitude,
                    'longitude': longitude,
                    'radius': 50,
                },
            ]
        })

        active = zone.active_zone(self.hass, latitude, longitude)
        assert 'zone.smallest_zone' == active.entity_id
Esempio n. 7
0
    def test_in_zone_works_for_passive_zones(self):
        latitude = 32.880600
        longitude = -117.237561
        assert zone.setup(self.hass, {
            'zone': [
                {
                    'name': 'Passive Zone',
                    'latitude': latitude,
                    'longitude': longitude,
                    'radius': 250,
                    'passive': True
                },
            ]
        })

        assert zone.in_zone(self.hass.states.get('zone.passive_zone'),
                            latitude, longitude)
Esempio n. 8
0
    def test_setup(self):
        """Test setup."""
        info = {
            'name': 'Test Zone',
            'latitude': 32.880837,
            'longitude': -117.237561,
            'radius': 250,
            'passive': True
        }
        assert zone.setup(self.hass, {'zone': info})

        state = self.hass.states.get('zone.test_zone')
        assert info['name'] == state.name
        assert info['latitude'] == state.attributes['latitude']
        assert info['longitude'] == state.attributes['longitude']
        assert info['radius'] == state.attributes['radius']
        assert info['passive'] == state.attributes['passive']
Esempio n. 9
0
    def test_setup(self):
        info = {
            'name': 'Test Zone',
            'latitude': 32.880837,
            'longitude': -117.237561,
            'radius': 250,
            'passive': True
        }
        assert zone.setup(self.hass, {
            'zone': info
        })

        state = self.hass.states.get('zone.test_zone')
        assert info['name'] == state.name
        assert info['latitude'] == state.attributes['latitude']
        assert info['longitude'] == state.attributes['longitude']
        assert info['radius'] == state.attributes['radius']
        assert info['passive'] == state.attributes['passive']
Esempio n. 10
0
    def setup_method(self, method):
        self.hass = get_test_home_assistant()

        self.yaml_devices = self.hass.config.path(device_tracker.YAML_DEVICES)

        zone.setup(
            self.hass, {
                'zone': [
                    {
                        'name': 'home',
                        'latitude': 2.1,
                        'longitude': 1.1,
                        'radius': 10,
                    },
                    {
                        'name': 'work',
                        'latitude': 100,
                        'longitude': 100,
                        'radius': 10,
                    },
                ]
            })

        dev_id = 'test1'
        entity_id = device_tracker.ENTITY_ID_FORMAT.format(dev_id)
        friendly_name = 'test1'
        picture = 'http://placehold.it/200x200'

        device = device_tracker.Device(self.hass,
                                       timedelta(seconds=180),
                                       0,
                                       True,
                                       dev_id,
                                       None,
                                       friendly_name,
                                       picture,
                                       away_hide=True)
        device_tracker.update_config(self.yaml_devices, dev_id, device)

        self.hass.states.set('device_tracker.test1', 'not_home', {
            'friendly_name': 'test1',
            'latitude': 50,
            'longitude': 50
        })

        dev_id = 'test2'
        entity_id = device_tracker.ENTITY_ID_FORMAT.format(dev_id)
        friendly_name = 'test2'
        picture = 'http://placehold.it/200x200'

        device = device_tracker.Device(self.hass,
                                       timedelta(seconds=180),
                                       0,
                                       True,
                                       dev_id,
                                       None,
                                       friendly_name,
                                       picture,
                                       away_hide=True)
        device_tracker.update_config(self.yaml_devices, dev_id, device)

        self.hass.states.set('device_tracker.test2', 'not_home', {
            'friendly_name': 'test2',
            'latitude': 50,
            'longitude': 50
        })
    def setup_method(self, method):
        self.hass = get_test_home_assistant()
        
        self.yaml_devices = self.hass.config.path(device_tracker.YAML_DEVICES)
        
        zone.setup(self.hass, {
            'zone': [
                {
                    'name': 'home',
                    'latitude': 2.1,
                    'longitude': 1.1,
                    'radius': 10,
                },
                {
                    'name': 'work',
                    'latitude': 100,
                    'longitude': 100,
                    'radius': 10,
                },
            ]
        })
        
        dev_id = 'test1'
        entity_id = device_tracker.ENTITY_ID_FORMAT.format(dev_id)
        friendly_name = 'test1'
        picture = 'http://placehold.it/200x200'

        device = device_tracker.Device(
            self.hass, 
            timedelta(seconds=180), 
            0, 
            True, 
            dev_id, 
            None,
            friendly_name, 
            picture, 
            away_hide=True)
        device_tracker.update_config(self.yaml_devices, dev_id, device)
        
        self.hass.states.set(
            'device_tracker.test1', 'not_home',
            {
                'friendly_name': 'test1',
                'latitude': 50,
                'longitude': 50
            })
        
        dev_id = 'test2'
        entity_id = device_tracker.ENTITY_ID_FORMAT.format(dev_id)
        friendly_name = 'test2'
        picture = 'http://placehold.it/200x200'

        device = device_tracker.Device(
            self.hass, timedelta(seconds=180), 0, True, dev_id, None,
            friendly_name, picture, away_hide=True)
        device_tracker.update_config(self.yaml_devices, dev_id, device)
        
        self.hass.states.set(
            'device_tracker.test2', 'not_home',
            {
                'friendly_name': 'test2',
                'latitude': 50,
                'longitude': 50
            })