Пример #1
0
    async def _execute_command(self, device_type, command, config):
        address = random_address()
        params = config["params"]
        for param in params:
            params[param] = convert_to_int(params[param])
        if config.get("response"):
            topic_item = convert_response(config["response"], address)
        else:
            topic_item = None

        device_class = getattr(device_types, device_type)

        try:
            device = device_class(address=address,
                                  cat=0x01,
                                  subcat=0x02,
                                  description=device_type)
            method = getattr(device, command)
            if topic_item:
                send_topics([topic_item])
            result = await method(**params)
            assert int(result) == 1
        # pylint: disable=broad-except
        except Exception as ex:
            _LOGGER.error("Failed: device: %s  command: %s", device_type,
                          command)
            _LOGGER.error(ex)
            assert False
Пример #2
0
    async def test_create_devices(self):
        """Test device creation."""

        ipdb = IPDB()
        failed = False
        for prod in ipdb:
            addr = random_address()
            try:
                prod.deviceclass(
                    address=addr,
                    cat=prod.cat,
                    subcat=prod.subcat,
                    description=prod.description,
                    model=prod.model,
                )
            # pylint: disable=broad-except
            except Exception as e:
                cat = None if prod.cat is None else f"{int(prod.cat):02x}"
                subcat = None if prod.subcat is None else f"{int(prod.subcat):02x}"
                _LOGGER.error("Failed with cat %s subcat %s", cat, subcat)
                _LOGGER.error(e)
                _LOGGER.debug(traceback.format_exc())
                failed = True

        if failed:
            assert False