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
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