Example #1
0
    def test_binary_sensor(self, mock):
        """Test the Ring sensor class and methods."""
        mock.post('https://oauth.ring.com/oauth/token',
                  text=load_fixture('ring_oauth.json'))
        mock.post('https://api.ring.com/clients_api/session',
                  text=load_fixture('ring_session.json'))
        mock.get('https://api.ring.com/clients_api/ring_devices',
                 text=load_fixture('ring_devices.json'))
        mock.get('https://api.ring.com/clients_api/dings/active',
                 text=load_fixture('ring_ding_active.json'))
        mock.get('https://api.ring.com/clients_api/doorbots/987652/health',
                 text=load_fixture('ring_doorboot_health_attrs.json'))

        base_ring.setup(self.hass, VALID_CONFIG)
        ring.setup_platform(self.hass,
                            self.config,
                            self.add_devices,
                            None)

        for device in self.DEVICES:
            device.update()
            if device.name == 'Front Door Ding':
                self.assertEqual('on', device.state)
                self.assertEqual('America/New_York',
                                 device.device_state_attributes['timezone'])
            elif device.name == 'Front Door Motion':
                self.assertEqual('off', device.state)
                self.assertEqual('motion', device.device_class)

            self.assertIsNone(device.entity_picture)
            self.assertEqual(ATTRIBUTION,
                             device.device_state_attributes['attribution'])
Example #2
0
    def test_sensor(self, mock):
        """Test the Ring sensor class and methods."""
        mock.post('https://oauth.ring.com/oauth/token',
                  text=load_fixture('ring_oauth.json'))
        mock.post('https://api.ring.com/clients_api/session',
                  text=load_fixture('ring_session.json'))
        mock.get('https://api.ring.com/clients_api/ring_devices',
                 text=load_fixture('ring_devices.json'))
        mock.get('https://api.ring.com/clients_api/doorbots/987652/history',
                 text=load_fixture('ring_doorbots.json'))
        mock.get('https://api.ring.com/clients_api/doorbots/987652/health',
                 text=load_fixture('ring_doorboot_health_attrs.json'))
        mock.get('https://api.ring.com/clients_api/chimes/999999/health',
                 text=load_fixture('ring_chime_health_attrs.json'))
        base_ring.setup(self.hass, VALID_CONFIG)
        ring.setup_platform(self.hass,
                            self.config,
                            self.add_entities,
                            None)

        for device in self.DEVICES:
            device.update()
            if device.name == 'Front Battery':
                assert 80 == device.state
                assert 'hp_cam_v1' == \
                    device.device_state_attributes['kind']
                assert 'stickup_cams' == \
                    device.device_state_attributes['type']
            if device.name == 'Front Door Battery':
                assert 100 == device.state
                assert 'lpd_v1' == \
                    device.device_state_attributes['kind']
                assert 'chimes' != \
                       device.device_state_attributes['type']
            if device.name == 'Downstairs Volume':
                assert 2 == device.state
                assert '1.2.3' == \
                    device.device_state_attributes['firmware']
                assert 'ring_mock_wifi' == \
                    device.device_state_attributes['wifi_name']
                assert 'mdi:bell-ring' == device.icon
                assert 'chimes' == \
                    device.device_state_attributes['type']
            if device.name == 'Front Door Last Activity':
                assert not device.device_state_attributes['answered']
                assert 'America/New_York' == \
                    device.device_state_attributes['timezone']

            if device.name == 'Downstairs WiFi Signal Strength':
                assert -39 == device.state

            if device.name == 'Front Door WiFi Signal Category':
                assert 'good' == device.state

            if device.name == 'Front Door WiFi Signal Strength':
                assert -58 == device.state

            assert device.entity_picture is None
            assert ATTRIBUTION == \
                device.device_state_attributes['attribution']
    def test_sensor(self, mock):
        """Test the Ring sensor class and methods."""
        mock.post('https://oauth.ring.com/oauth/token',
                  text=load_fixture('ring_oauth.json'))
        mock.post('https://api.ring.com/clients_api/session',
                  text=load_fixture('ring_session.json'))
        mock.get('https://api.ring.com/clients_api/ring_devices',
                 text=load_fixture('ring_devices.json'))
        mock.get('https://api.ring.com/clients_api/doorbots/987652/history',
                 text=load_fixture('ring_doorbots.json'))
        mock.get('https://api.ring.com/clients_api/doorbots/987652/health',
                 text=load_fixture('ring_doorboot_health_attrs.json'))
        mock.get('https://api.ring.com/clients_api/chimes/999999/health',
                 text=load_fixture('ring_chime_health_attrs.json'))
        base_ring.setup(self.hass, VALID_CONFIG)
        ring.setup_platform(self.hass,
                            self.config,
                            self.add_entities,
                            None)

        for device in self.DEVICES:
            device.update()
            if device.name == 'Front Battery':
                self.assertEqual(80, device.state)
                self.assertEqual('hp_cam_v1',
                                 device.device_state_attributes['kind'])
                self.assertEqual('stickup_cams',
                                 device.device_state_attributes['type'])
            if device.name == 'Front Door Battery':
                self.assertEqual(100, device.state)
                self.assertEqual('lpd_v1',
                                 device.device_state_attributes['kind'])
                self.assertNotEqual('chimes',
                                    device.device_state_attributes['type'])
            if device.name == 'Downstairs Volume':
                self.assertEqual(2, device.state)
                self.assertEqual('1.2.3',
                                 device.device_state_attributes['firmware'])
                self.assertEqual('ring_mock_wifi',
                                 device.device_state_attributes['wifi_name'])
                self.assertEqual('mdi:bell-ring', device.icon)
                self.assertEqual('chimes',
                                 device.device_state_attributes['type'])
            if device.name == 'Front Door Last Activity':
                self.assertFalse(device.device_state_attributes['answered'])
                self.assertEqual('America/New_York',
                                 device.device_state_attributes['timezone'])

            if device.name == 'Downstairs WiFi Signal Strength':
                self.assertEqual(-39, device.state)

            if device.name == 'Front Door WiFi Signal Category':
                self.assertEqual('good', device.state)

            if device.name == 'Front Door WiFi Signal Strength':
                self.assertEqual(-58, device.state)

            self.assertIsNone(device.entity_picture)
            self.assertEqual(ATTRIBUTION,
                             device.device_state_attributes['attribution'])
Example #4
0
    def test_binary_sensor(self, mock):
        """Test the Ring sensor class and methods."""
        mock.post('https://api.ring.com/clients_api/session',
                  text=load_fixture('ring_session.json'))
        mock.get('https://api.ring.com/clients_api/ring_devices',
                 text=load_fixture('ring_devices.json'))
        mock.get('https://api.ring.com/clients_api/dings/active',
                 text=load_fixture('ring_ding_active.json'))

        base_ring.setup(self.hass, VALID_CONFIG)
        ring.setup_platform(self.hass, self.config, self.add_devices, None)

        for device in self.DEVICES:
            device.update()
            if device.name == 'Front Door Ding':
                self.assertEqual('on', device.state)
                self.assertEqual('America/New_York',
                                 device.device_state_attributes['timezone'])
            elif device.name == 'Front Door Motion':
                self.assertEqual('off', device.state)
                self.assertEqual('motion', device.device_class)

            self.assertIsNone(device.entity_picture)
            self.assertEqual(ATTRIBUTION,
                             device.device_state_attributes['attribution'])
Example #5
0
    def test_sensor(self, mock):
        """Test the Ring senskor class and methods."""
        mock.post('https://api.ring.com/clients_api/session',
                  text=load_fixture('ring_session.json'))
        mock.get('https://api.ring.com/clients_api/ring_devices',
                 text=load_fixture('ring_devices.json'))
        mock.get('https://api.ring.com/clients_api/doorbots/987652/history',
                 text=load_fixture('ring_doorbots.json'))
        base_ring.setup(self.hass, VALID_CONFIG)
        ring.setup_platform(self.hass, self.config, self.add_devices, None)

        for device in self.DEVICES:
            device.update()
            if device.name == 'Front Door Battery':
                self.assertEqual(100, device.state)
                self.assertEqual('lpd_v1',
                                 device.device_state_attributes['kind'])
                self.assertNotEqual('chimes',
                                    device.device_state_attributes['type'])
            if device.name == 'Downstairs Volume':
                self.assertEqual(2, device.state)
                self.assertEqual('1.2.3',
                                 device.device_state_attributes['firmware'])
                self.assertEqual('mdi:bell-ring', device.icon)
                self.assertEqual('chimes',
                                 device.device_state_attributes['type'])
            if device.name == 'Front Door Last Activity':
                self.assertFalse(device.device_state_attributes['answered'])
                self.assertEqual('America/New_York',
                                 device.device_state_attributes['timezone'])

            self.assertIsNone(device.entity_picture)
            self.assertEqual(ATTRIBUTION,
                             device.device_state_attributes['attribution'])
Example #6
0
    def test_binary_sensor(self, mock):
        """Test the Ring sensor class and methods."""
        mock.post('https://oauth.ring.com/oauth/token',
                  text=load_fixture('ring_oauth.json'))
        mock.post('https://api.ring.com/clients_api/session',
                  text=load_fixture('ring_session.json'))
        mock.get('https://api.ring.com/clients_api/ring_devices',
                 text=load_fixture('ring_devices.json'))
        mock.get('https://api.ring.com/clients_api/dings/active',
                 text=load_fixture('ring_ding_active.json'))
        mock.get('https://api.ring.com/clients_api/doorbots/987652/health',
                 text=load_fixture('ring_doorboot_health_attrs.json'))

        base_ring.setup(self.hass, VALID_CONFIG)
        ring.setup_platform(self.hass, self.config, self.add_entities, None)

        for device in self.DEVICES:
            device.update()
            if device.name == 'Front Door Ding':
                assert 'on' == device.state
                assert 'America/New_York' == \
                    device.device_state_attributes['timezone']
            elif device.name == 'Front Door Motion':
                assert 'off' == device.state
                assert 'motion' == device.device_class

            assert device.entity_picture is None
            assert ATTRIBUTION == \
                device.device_state_attributes['attribution']
Example #7
0
 def test_setup(self, mock):
     """Test the setup."""
     mock.post('https://oauth.ring.com/oauth/token',
               text=load_fixture('ring_oauth.json'))
     mock.post('https://api.ring.com/clients_api/session',
               text=load_fixture('ring_session.json'))
     response = ring.setup(self.hass, self.config)
     self.assertTrue(response)
Example #8
0
 def test_setup(self, mock):
     """Test the setup."""
     mock.post('https://oauth.ring.com/oauth/token',
               text=load_fixture('ring_oauth.json'))
     mock.post('https://api.ring.com/clients_api/session',
               text=load_fixture('ring_session.json'))
     response = ring.setup(self.hass, self.config)
     self.assertTrue(response)
    def test_binary_sensor(self, mock):
        """Test the Ring sensor class and methods."""
        mock.post("https://oauth.ring.com/oauth/token",
                  text=load_fixture("ring_oauth.json"))
        mock.post(
            "https://api.ring.com/clients_api/session",
            text=load_fixture("ring_session.json"),
        )
        mock.get(
            "https://api.ring.com/clients_api/ring_devices",
            text=load_fixture("ring_devices.json"),
        )
        mock.get(
            "https://api.ring.com/clients_api/dings/active",
            text=load_fixture("ring_ding_active.json"),
        )
        mock.get(
            "https://api.ring.com/clients_api/doorbots/987652/health",
            text=load_fixture("ring_doorboot_health_attrs.json"),
        )
        mock.get(
            "https://api.ring.com/clients_api/chimes/999999/health",
            text=load_fixture("ring_chime_health_attrs.json"),
        )

        base_ring.setup(self.hass, VALID_CONFIG)
        ring.setup_platform(self.hass, self.config, self.add_entities, None)

        for device in self.DEVICES:
            device.update()
            if device.name == "Front Door Ding":
                assert "on" == device.state
                assert "America/New_York" == device.device_state_attributes[
                    "timezone"]
            elif device.name == "Front Door Motion":
                assert "off" == device.state
                assert "motion" == device.device_class

            assert device.entity_picture is None
            assert ATTRIBUTION == device.device_state_attributes["attribution"]
Example #10
0
    def test_sensor(self, mock):
        """Test the Ring senskor class and methods."""
        mock.post('https://api.ring.com/clients_api/session',
                  text=load_fixture('ring_session.json'))
        mock.get('https://api.ring.com/clients_api/ring_devices',
                 text=load_fixture('ring_devices.json'))
        mock.get('https://api.ring.com/clients_api/doorbots/987652/history',
                 text=load_fixture('ring_doorbots.json'))
        base_ring.setup(self.hass, VALID_CONFIG)
        ring.setup_platform(self.hass,
                            self.config,
                            self.add_devices,
                            None)

        for device in self.DEVICES:
            device.update()
            if device.name == 'Front Door Battery':
                self.assertEqual(100, device.state)
                self.assertEqual('lpd_v1',
                                 device.device_state_attributes['kind'])
                self.assertNotEqual('chimes',
                                    device.device_state_attributes['type'])
            if device.name == 'Downstairs Volume':
                self.assertEqual(2, device.state)
                self.assertEqual('1.2.3',
                                 device.device_state_attributes['firmware'])
                self.assertEqual('mdi:bell-ring', device.icon)
                self.assertEqual('chimes',
                                 device.device_state_attributes['type'])
            if device.name == 'Front Door Last Activity':
                self.assertFalse(device.device_state_attributes['answered'])
                self.assertEqual('America/New_York',
                                 device.device_state_attributes['timezone'])

            self.assertIsNone(device.entity_picture)
            self.assertEqual(ATTRIBUTION,
                             device.device_state_attributes['attribution'])
Example #11
0
 def test_setup(self, mock):
     """Test the setup."""
     mock.post("https://oauth.ring.com/oauth/token",
               text=load_fixture("ring_oauth.json"))
     mock.post(
         "https://api.ring.com/clients_api/session",
         text=load_fixture("ring_session.json"),
     )
     mock.get(
         "https://api.ring.com/clients_api/ring_devices",
         text=load_fixture("ring_devices.json"),
     )
     mock.get(
         "https://api.ring.com/clients_api/chimes/999999/health",
         text=load_fixture("ring_chime_health_attrs.json"),
     )
     mock.get(
         "https://api.ring.com/clients_api/doorbots/987652/health",
         text=load_fixture("ring_doorboot_health_attrs.json"),
     )
     response = ring.setup(self.hass, self.config)
     assert response
Example #12
0
    def test_sensor(self, mock):
        """Test the Ring sensor class and methods."""
        mock.post("https://oauth.ring.com/oauth/token",
                  text=load_fixture("ring_oauth.json"))
        mock.post(
            "https://api.ring.com/clients_api/session",
            text=load_fixture("ring_session.json"),
        )
        mock.get(
            "https://api.ring.com/clients_api/ring_devices",
            text=load_fixture("ring_devices.json"),
        )
        mock.get(
            "https://api.ring.com/clients_api/doorbots/987652/history",
            text=load_fixture("ring_doorbots.json"),
        )
        mock.get(
            "https://api.ring.com/clients_api/doorbots/987652/health",
            text=load_fixture("ring_doorboot_health_attrs.json"),
        )
        mock.get(
            "https://api.ring.com/clients_api/chimes/999999/health",
            text=load_fixture("ring_chime_health_attrs.json"),
        )
        base_ring.setup(self.hass, VALID_CONFIG)
        ring.setup_platform(self.hass, self.config, self.add_entities, None)

        for device in self.DEVICES:
            device.update()
            if device.name == "Front Battery":
                expected_icon = icon_for_battery_level(battery_level=int(
                    device.state),
                                                       charging=False)
                assert device.icon == expected_icon
                assert 80 == device.state
                assert "hp_cam_v1" == device.device_state_attributes["kind"]
                assert "stickup_cams" == device.device_state_attributes["type"]
            if device.name == "Front Door Battery":
                assert 100 == device.state
                assert "lpd_v1" == device.device_state_attributes["kind"]
                assert "chimes" != device.device_state_attributes["type"]
            if device.name == "Downstairs Volume":
                assert 2 == device.state
                assert "1.2.3" == device.device_state_attributes["firmware"]
                assert "ring_mock_wifi" == device.device_state_attributes[
                    "wifi_name"]
                assert "mdi:bell-ring" == device.icon
                assert "chimes" == device.device_state_attributes["type"]
            if device.name == "Front Door Last Activity":
                assert not device.device_state_attributes["answered"]
                assert "America/New_York" == device.device_state_attributes[
                    "timezone"]

            if device.name == "Downstairs WiFi Signal Strength":
                assert -39 == device.state

            if device.name == "Front Door WiFi Signal Category":
                assert "good" == device.state

            if device.name == "Front Door WiFi Signal Strength":
                assert -58 == device.state

            assert device.entity_picture is None
            assert ATTRIBUTION == device.device_state_attributes["attribution"]
            assert not device.should_poll