예제 #1
0
        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,
         ),
     )
예제 #3
0
# 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)
예제 #4
0
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
예제 #5
0
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()

예제 #6
0
# 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)
예제 #7
0
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,
예제 #8
0
            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)],
)
예제 #9
0
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),
    ),