예제 #1
0
def test_sensor(hass: HomeAssistant):
    """Test the Vultr sensor class and methods."""
    hass_devices = []

    def add_entities(devices, action):
        """Mock add devices."""
        for device in devices:
            device.hass = hass
            hass_devices.append(device)

    for config in CONFIGS:
        vultr.setup_platform(hass, config, add_entities, None)

    assert len(hass_devices) == 5

    tested = 0

    for device in hass_devices:

        # Test pre update
        if device.subscription == "576965":
            assert vultr.DEFAULT_NAME == device.name

        device.update()

        if device.unit_of_measurement == DATA_GIGABYTES:  # Test Bandwidth Used
            if device.subscription == "576965":
                assert device.name == "Vultr my new server Current Bandwidth Used"
                assert device.icon == "mdi:chart-histogram"
                assert device.state == 131.51
                assert device.icon == "mdi:chart-histogram"
                tested += 1

            elif device.subscription == "123456":
                assert device.name == "Server Current Bandwidth Used"
                assert device.state == 957.46
                tested += 1

        elif device.unit_of_measurement == "US$":  # Test Pending Charges

            if device.subscription == "576965":  # Default 'Vultr {} {}'
                assert device.name == "Vultr my new server Pending Charges"
                assert device.icon == "mdi:currency-usd"
                assert device.state == 46.67
                assert device.icon == "mdi:currency-usd"
                tested += 1

            elif device.subscription == "123456":  # Custom name with 1 {}
                assert device.name == "Server Pending Charges"
                assert device.state == "not a number"
                tested += 1

            elif device.subscription == "555555":  # No {} in name
                assert device.name == "VPS Charges"
                assert device.state == 5.45
                tested += 1

    assert tested == 5
    def test_invalid_sensors(self, mock):
        """Test the VultrSensor fails."""
        mock.get(
            "https://api.vultr.com/v1/account/info?api_key=ABCDEFG1234567",
            text=load_fixture("account_info.json", "vultr"),
        )

        with patch(
                "vultr.Vultr.server_list",
                return_value=json.loads(
                    load_fixture("server_list.json", "vultr")),
        ):
            # Setup hub
            base_vultr.setup(self.hass, VALID_CONFIG)

        bad_conf = {
            CONF_NAME: "Vultr {} {}",
            CONF_SUBSCRIPTION: "",
            CONF_MONITORED_CONDITIONS: vultr.SENSOR_KEYS,
        }  # No subs at all

        no_sub_setup = vultr.setup_platform(self.hass, bad_conf,
                                            self.add_entities, None)

        assert no_sub_setup is None
        assert len(self.DEVICES) == 0
예제 #3
0
def test_invalid_sensors(hass: HomeAssistant):
    """Test the VultrSensor fails."""
    hass_devices = []

    def add_entities(devices, action):
        """Mock add devices."""
        for device in devices:
            device.hass = hass
            hass_devices.append(device)

    bad_conf = {
        CONF_NAME: "Vultr {} {}",
        CONF_SUBSCRIPTION: "",
        CONF_MONITORED_CONDITIONS: vultr.SENSOR_KEYS,
    }  # No subs at all

    vultr.setup_platform(hass, bad_conf, add_entities, None)

    assert len(hass_devices) == 0
예제 #4
0
    def test_invalid_sensors(self, mock):
        """Test the VultrSensor fails."""
        mock.get(
            'https://api.vultr.com/v1/account/info?api_key=ABCDEFG1234567',
            text=load_fixture('vultr_account_info.json'))

        with patch('vultr.Vultr.server_list',
                   return_value=json.loads(
                       load_fixture('vultr_server_list.json'))):
            # Setup hub
            base_vultr.setup(self.hass, VALID_CONFIG)

        bad_conf = {
            CONF_MONITORED_CONDITIONS: vultr.MONITORED_CONDITIONS,
        }  # No subs at all

        no_sub_setup = vultr.setup_platform(self.hass, bad_conf,
                                            self.add_entities, None)

        assert no_sub_setup is None
        assert 0 == len(self.DEVICES)
예제 #5
0
    def test_sensor(self, mock):
        """Test the Vultr sensor class and methods."""
        mock.get(
            "https://api.vultr.com/v1/account/info?api_key=ABCDEFG1234567",
            text=load_fixture("vultr_account_info.json"),
        )

        with patch(
                "vultr.Vultr.server_list",
                return_value=json.loads(
                    load_fixture("vultr_server_list.json")),
        ):
            # Setup hub
            base_vultr.setup(self.hass, VALID_CONFIG)

        for config in self.configs:
            setup = vultr.setup_platform(self.hass, config, self.add_entities,
                                         None)

            assert setup is None

        assert len(self.DEVICES) == 5

        tested = 0

        for device in self.DEVICES:

            # Test pre update
            if device.subscription == "576965":
                assert vultr.DEFAULT_NAME == device.name

            device.update()

            if device.unit_of_measurement == DATA_GIGABYTES:  # Test Bandwidth Used
                if device.subscription == "576965":
                    assert device.name == "Vultr my new server Current Bandwidth Used"
                    assert device.icon == "mdi:chart-histogram"
                    assert device.state == 131.51
                    assert device.icon == "mdi:chart-histogram"
                    tested += 1

                elif device.subscription == "123456":
                    assert device.name == "Server Current Bandwidth Used"
                    assert device.state == 957.46
                    tested += 1

            elif device.unit_of_measurement == "US$":  # Test Pending Charges

                if device.subscription == "576965":  # Default 'Vultr {} {}'
                    assert device.name == "Vultr my new server Pending Charges"
                    assert device.icon == "mdi:currency-usd"
                    assert device.state == 46.67
                    assert device.icon == "mdi:currency-usd"
                    tested += 1

                elif device.subscription == "123456":  # Custom name with 1 {}
                    assert device.name == "Server Pending Charges"
                    assert device.state == "not a number"
                    tested += 1

                elif device.subscription == "555555":  # No {} in name
                    assert device.name == "VPS Charges"
                    assert device.state == 5.45
                    tested += 1

        assert tested == 5
예제 #6
0
    def test_sensor(self, mock):
        """Test the Vultr sensor class and methods."""
        mock.get(
            'https://api.vultr.com/v1/account/info?api_key=ABCDEFG1234567',
            text=load_fixture('vultr_account_info.json'))

        with patch('vultr.Vultr.server_list',
                   return_value=json.loads(
                       load_fixture('vultr_server_list.json'))):
            # Setup hub
            base_vultr.setup(self.hass, VALID_CONFIG)

        for config in self.configs:
            setup = vultr.setup_platform(self.hass, config, self.add_entities,
                                         None)

            assert setup is None

        assert 5 == len(self.DEVICES)

        tested = 0

        for device in self.DEVICES:

            # Test pre update
            if device.subscription == '576965':
                assert vultr.DEFAULT_NAME == device.name

            device.update()

            if device.unit_of_measurement == 'GB':  # Test Bandwidth Used
                if device.subscription == '576965':
                    assert 'Vultr my new server Current Bandwidth Used' == \
                        device.name
                    assert 'mdi:chart-histogram' == device.icon
                    assert 131.51 == device.state
                    assert 'mdi:chart-histogram' == device.icon
                    tested += 1

                elif device.subscription == '123456':
                    assert 'Server Current Bandwidth Used' == \
                        device.name
                    assert 957.46 == device.state
                    tested += 1

            elif device.unit_of_measurement == 'US$':  # Test Pending Charges

                if device.subscription == '576965':  # Default 'Vultr {} {}'
                    assert 'Vultr my new server Pending Charges' == \
                        device.name
                    assert 'mdi:currency-usd' == device.icon
                    assert 46.67 == device.state
                    assert 'mdi:currency-usd' == device.icon
                    tested += 1

                elif device.subscription == '123456':  # Custom name with 1 {}
                    assert 'Server Pending Charges' == device.name
                    assert 'not a number' == device.state
                    tested += 1

                elif device.subscription == '555555':  # No {} in name
                    assert 'VPS Charges' == device.name
                    assert 5.45 == device.state
                    tested += 1

        assert tested == 5