def test_invalid_switches(self, mock):
        """Test the VultrSwitch 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 = {}  # No subscription

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

        assert no_subs_setup is not None

        bad_conf = {
            CONF_NAME: "Missing Server",
            CONF_SUBSCRIPTION: "665544",
        }  # Sub not associated with API key (not in server_list)

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

        assert wrong_subs_setup is not None
    def test_switch(self, mock):
        """Test successful instance."""
        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)

        # Setup each of our test configs
        for config in self.configs:
            vultr.setup_platform(self.hass, config, self.add_entities, None)

        assert len(self.DEVICES) == 3

        tested = 0

        for device in self.DEVICES:
            if device.subscription == "555555":
                assert device.name == "Vultr {}"
                tested += 1

            device.update()
            device_attrs = device.extra_state_attributes

            if device.subscription == "555555":
                assert device.name == "Vultr Another Server"
                tested += 1

            if device.name == "A Server":
                assert device.is_on is True
                assert device.state == "on"
                assert device.icon == "mdi:server"
                assert device_attrs[ATTR_ALLOWED_BANDWIDTH] == "1000"
                assert device_attrs[ATTR_AUTO_BACKUPS] == "yes"
                assert device_attrs[ATTR_IPV4_ADDRESS] == "123.123.123.123"
                assert device_attrs[ATTR_COST_PER_MONTH] == "10.05"
                assert device_attrs[ATTR_CREATED_AT] == "2013-12-19 14:45:41"
                assert device_attrs[ATTR_SUBSCRIPTION_ID] == "576965"
                tested += 1

            elif device.name == "Failed Server":
                assert device.is_on is False
                assert device.state == "off"
                assert device.icon == "mdi:server-off"
                assert device_attrs[ATTR_ALLOWED_BANDWIDTH] == "1000"
                assert device_attrs[ATTR_AUTO_BACKUPS] == "no"
                assert device_attrs[ATTR_IPV4_ADDRESS] == "192.168.100.50"
                assert device_attrs[ATTR_COST_PER_MONTH] == "73.25"
                assert device_attrs[ATTR_CREATED_AT] == "2014-10-13 14:45:41"
                assert device_attrs[ATTR_SUBSCRIPTION_ID] == "123456"
                tested += 1

        assert tested == 4
Beispiel #3
0
def load_hass_devices(hass: HomeAssistant):
    """Load a valid config."""
    hass_devices = []

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

    # Setup each of our test configs
    for config in CONFIGS:
        vultr.setup_platform(hass, config, add_entities, None)

    yield hass_devices
Beispiel #4
0
def test_invalid_switches(hass: HomeAssistant):
    """Test the VultrSwitch fails."""
    hass_devices = []

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

    bad_conf = {}  # No subscription

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

    bad_conf = {
        CONF_NAME: "Missing Server",
        CONF_SUBSCRIPTION: "665544",
    }  # Sub not associated with API key (not in server_list)

    vultr.setup_platform(hass, bad_conf, add_entities, None)
Beispiel #5
0
    def test_switch(self, mock):
        """Test successful instance."""
        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)

        # Setup each of our test configs
        for config in self.configs:
            vultr.setup_platform(self.hass, config, self.add_entities, None)

        assert len(self.DEVICES) == 3

        tested = 0

        for device in self.DEVICES:
            if device.subscription == '555555':
                assert 'Vultr {}' == device.name
                tested += 1

            device.update()
            device_attrs = device.device_state_attributes

            if device.subscription == '555555':
                assert 'Vultr Another Server' == device.name
                tested += 1

            if device.name == 'A Server':
                assert device.is_on is True
                assert 'on' == device.state
                assert 'mdi:server' == device.icon
                assert '1000' == \
                    device_attrs[ATTR_ALLOWED_BANDWIDTH]
                assert 'yes' == \
                    device_attrs[ATTR_AUTO_BACKUPS]
                assert '123.123.123.123' == \
                    device_attrs[ATTR_IPV4_ADDRESS]
                assert '10.05' == \
                    device_attrs[ATTR_COST_PER_MONTH]
                assert '2013-12-19 14:45:41' == \
                    device_attrs[ATTR_CREATED_AT]
                assert '576965' == \
                    device_attrs[ATTR_SUBSCRIPTION_ID]
                tested += 1

            elif device.name == 'Failed Server':
                assert device.is_on is False
                assert 'off' == device.state
                assert 'mdi:server-off' == device.icon
                assert '1000' == \
                    device_attrs[ATTR_ALLOWED_BANDWIDTH]
                assert 'no' == \
                    device_attrs[ATTR_AUTO_BACKUPS]
                assert '192.168.100.50' == \
                    device_attrs[ATTR_IPV4_ADDRESS]
                assert '73.25' == \
                    device_attrs[ATTR_COST_PER_MONTH]
                assert '2014-10-13 14:45:41' == \
                    device_attrs[ATTR_CREATED_AT]
                assert '123456' == \
                    device_attrs[ATTR_SUBSCRIPTION_ID]
                tested += 1

        assert 4 == tested