class V: serials = ["d073d5000001", "d073d5000002", "d073d5000003"] d1 = FakeDevice(serials[0], chp.default_responders(Products.LCM3_TILE)) d2 = FakeDevice(serials[1], chp.default_responders(Products.LCM2_Z, zones=[])) d3 = FakeDevice( serials[2], chp.default_responders( Products.LCM2_A19, firmware=chp.Firmware(2, 80, 1337), group_uuid="aa", group_label="g1", group_updated_at=42, location_uuid="bb", location_label="l1", location_updated_at=56, ), ) @hp.memoized_property def devices(s): return [s.d1, s.d2, s.d3]
def fake_device(self): return FakeDevice( "d073d5000001", chp.default_responders( Products.LCM2_A19, label="kitchen", firmware=chp.Firmware(2, 80, 1337), group_uuid="aa", group_label="g1", group_updated_at=42, location_uuid="bb", location_label="l1", location_updated_at=56, ), )
# coding: spec from photons_control import test_helpers as chp from photons_control.transform import Transformer, PowerToggle from photons_messages import DeviceMessages, LightMessages from photons_control.colour import ColourParser from photons_transport.fake import FakeDevice import itertools import random import pytest light1 = FakeDevice("d073d5000001", chp.default_responders(color=chp.Color(0, 1, 0.3, 2500))) light2 = FakeDevice( "d073d5000002", chp.default_responders(power=65535, color=chp.Color(100, 1, 0.5, 2500)) ) light3 = FakeDevice( "d073d5000003", chp.default_responders(power=65535, color=chp.Color(100, 0, 0.8, 2500)) ) @pytest.fixture(scope="module") async def runner(memory_devices_runner): async with memory_devices_runner([light1, light2, light3]) as runner: yield runner @pytest.fixture(autouse=True)
async def _setup(): device = FakeDevice("d073d5001337", chp.default_responders(Products.LCM2_A19), use_sockets=True) async with device: options = {"final_future": asyncio.Future(), "protocol_register": protocol_register} target = MemoryTarget.create(options, {"devices": device}) yield target, device
from photons_control import test_helpers as chp from photons_control.script import Pipeline from photons_app.errors import RunErrors, TimedOut from photons_app.special import FoundSerials from photons_messages import DeviceMessages, LightMessages from photons_transport.fake import FakeDevice from collections import defaultdict from itertools import chain import asyncio import pytest light1 = FakeDevice("d073d5000001", chp.default_responders()) light2 = FakeDevice("d073d5000002", chp.default_responders()) light3 = FakeDevice("d073d5000003", chp.default_responders()) @pytest.fixture(scope="module") async def runner(memory_devices_runner): async with memory_devices_runner([light1, light2, light3]) as runner: yield runner @pytest.fixture(autouse=True) async def reset_runner(runner): await runner.per_test()
# coding: spec from photons_control import test_helpers as chp from photons_messages import MultiZoneEffectType, TileEffectType from photons_transport.fake import FakeDevice from photons_products import Products from delfick_project.errors_pytest import assertRaises describe "default_responders": async it "has defaults": device = FakeDevice("d073d5000001", chp.default_responders()) await device.start() assert device.attrs.vendor_id == 1 assert device.attrs.product_id == 27 assert device.attrs.firmware == chp.Firmware(0, 0, 0) assert device.attrs.color == chp.Color(0, 1, 1, 3500) assert device.attrs.power == 0 assert device.attrs.group_uuid == "" assert device.attrs.group_label == "" assert device.attrs.group_updated_at == 0 assert device.attrs.location_uuid == "" assert device.attrs.location_label == "" assert device.attrs.location_updated_at == 0 assert not any(isinstance(r, chp.ZonesResponder) for r in device.responders)
def convert(c): c2 = {} c2["hue"] = int(c["hue"] / 360 * 65535) / 65535 * 360 c2["saturation"] = int(c["saturation"] * 65535) / 65535 c2["brightness"] = int(c["brightness"] * 65535) / 65535 c2["kelvin"] = c["kelvin"] return c2 default_tile_palette = [convert(c) for c in default_tile_palette] tile1 = FakeDevice( "d073d5000001", chp.default_responders( Products.LCM3_TILE, firmware_build=1548977726000000000, firmware_major=3, firmware_minor=50 ), ) tile2 = FakeDevice( "d073d5000002", chp.default_responders( Products.LCM3_TILE, firmware_build=1548977726000000000, firmware_major=3, firmware_minor=50 ), ) nottile = FakeDevice( "d073d5000003", chp.default_responders( Products.LMB_MESH_A21, firmware_build=1448861477000000000,
m for m in self.received if m.__class__.__name__.startswith("Set") ] super().compare_received(expected, keep_duplicates=keep_duplicates) def expect_no_set_messages(self): assert not any([ m for m in self.received if m.__class__.__name__.startswith("Set") ]) a19_1 = FakeDevice( "d073d5000001", chp.default_responders( Products.LCM2_A19, label="kitchen", power=0, color=chp.Color(0, 1, 1, 2500), firmware=chp.Firmware(2, 75, 1521690429), ) + [CollectionResponder(group=group_one, location=location_one)], ) a19_2 = FakeDevice( "d073d5000002", chp.default_responders( Products.LCM2_A19, label="bathroom", power=65535, color=chp.Color(100, 1, 1, 2500), firmware=chp.Firmware(2, 75, 1521690429), ) + [CollectionResponder(group=group_two, location=location_one)], )
from delfick_project.errors_pytest import assertRaises import pytest zeroColor = chp.Color(0, 0, 0, 3500) zones1 = [chp.Color(i, 1, 1, 3500) for i in range(30)] zones2 = [chp.Color(90 - i, 1, 1, 3500) for i in range(6)] zones3 = [chp.Color(300 - i, 1, 1, 3500) for i in range(16)] light1 = FakeDevice( "d073d5000001", chp.default_responders( Products.LCM3_TILE, power=0, label="bob", infrared=100, color=chp.Color(100, 0.5, 0.5, 4500), firmware=chp.Firmware(3, 50, 1548977726000000000), ), ) light2 = FakeDevice( "d073d5000002", chp.default_responders( Products.LMB_MESH_A21, power=65535, label="sam", infrared=0, color=chp.Color(200, 0.3, 1, 9000), firmware=chp.Firmware(2, 2, 1448861477000000000), ),