async def __anext__(self): self.index += 1 if self.index == 0: return ( DeviceMessages.StatePower(level=0, target="d073d5000001"), ("192.168.0.1", 56700), "192.168.0.1", ) elif self.index == 1: return ( DeviceMessages.StateHostFirmware( build=0, version_major=1, version_minor=2, target="d073d5000002" ), ("`92.168.0.2", 56700), "192.168.0.2", ) else: raise StopAsyncIteration
def make_response(self, pkt, protocol): self.received.append(pkt) if pkt | LightMessages.GetInfrared: return LightMessages.StateInfrared(brightness=self.infrared) if pkt | LightMessages.GetColor: return LightMessages.LightState( hue = self.hue , saturation = self.saturation , brightness = self.brightness , kelvin = self.kelvin , label = self.label , power = self.power ) elif pkt | DeviceMessages.GetVersion: return DeviceMessages.StateVersion( vendor = self.vendor_id , product = self.product_id , version = 0 ) elif pkt | DeviceMessages.GetHostFirmware: return DeviceMessages.StateHostFirmware( version = self.firmware_version , build = self.firmware_build_time ) elif pkt | DeviceMessages.GetGroup: return DeviceMessages.StateGroup( group = self.group , label = self.group_label , updated_at = self.group_updated_at ) elif pkt | DeviceMessages.GetLocation: return DeviceMessages.StateLocation( location = self.location , label = self.location_label , updated_at = self.location_updated_at )
assert dct == {"results": {"one": "ok", "two": "ok"}, "errors": ["error1", "error2"]} describe "add_packet": it "sets info for that serial in results": packet = DeviceMessages.StatePower(level=0, target="d073d5000001") info = {"pkt_type": 22, "pkt_name": "StatePower", "payload": {"level": 0}} builder = ihp.ResultBuilder(["d073d5000001"]) builder.add_packet(packet) assert builder.as_dict() == {"results": {"d073d5000001": info}} it "makes a list if already have packet for that bulb": packet1 = DeviceMessages.StatePower(level=0, target="d073d5000001") packet2 = DeviceMessages.StatePower(level=65535, target="d073d5000001") packet3 = DeviceMessages.StateHostFirmware( build=0, version_major=1, version_minor=2, target="d073d5000001" ) info1 = {"pkt_type": 22, "pkt_name": "StatePower", "payload": {"level": 0}} info2 = {"pkt_type": 22, "pkt_name": "StatePower", "payload": {"level": 65535}} info3 = { "pkt_type": 15, "pkt_name": "StateHostFirmware", "payload": {"build": 0, "version_major": 1, "version_minor": 2}, } builder = ihp.ResultBuilder(["d073d5000001"]) builder.add_packet(packet1) assert builder.as_dict() == {"results": {"d073d5000001": info1}} builder.add_packet(packet2)
async with device: assertProduct() await device.assertResponse( DeviceMessages.GetVersion(), [DeviceMessages.StateVersion(vendor=1, product=55, version=0)], ) async it "responds to GetHostFirmware": device, assertProduct = self.make_device( Products.LCMV4_A19_COLOR, chp.Firmware(1, 23, 2, 100) ) async with device: assertProduct() await device.assertResponse( DeviceMessages.GetHostFirmware(), [DeviceMessages.StateHostFirmware(build=2, version_major=1, version_minor=23)], ) device, assertProduct = self.make_device( Products.LCM3_TILE, chp.Firmware(3, 50, 4, 400) ) async with device: assertProduct() await device.assertResponse( DeviceMessages.GetHostFirmware(), [DeviceMessages.StateHostFirmware(build=4, version_major=3, version_minor=50)], ) async it "responds to GetWifiFirmware": device, assertProduct = self.make_device( Products.LCMV4_A19_COLOR, chp.Firmware(1, 23, 2, 100)