Ejemplo n.º 1
0
def test_use_current_time_resource():
    current_time_resource = Resource("CurrentTimeResource", ["datetime"])

    current_time_resource.setValue("datetime", datetime(2017, 1, 1, 12))

    night_time = NightTime()

    night_time.process()

    assert night_time.is_day()

    current_time_resource.setValue("datetime", datetime(2017, 1, 1, 23))

    night_time.process()

    assert not night_time.is_day()
Ejemplo n.º 2
0
def test_delayed_publish():

    publisher = Resource("publisher", ["foo"])
    publisher.export_mqtt()

    subscriber = MqttResource("publisher_sub",
                              "localhost", ["foo"],
                              variable_mqtt_map={"foo": "publisher/foo"})

    publisher.setValue("foo", "bar")

    assert subscriber.getValue("foo") is None

    loop = asyncio.get_event_loop()

    loop.run_until_complete(publisher.mqtt_wrapper.wait_until_connected())

    assert subscriber.getValue("foo") == "bar"
Ejemplo n.º 3
0
def publish_time():
    sys_time_resource = Resource("Date", ["datetime", "datetime_utc"])

    while True:
        time_str = subprocess.check_output(["date", "-I", "seconds"],
                                           shell=True)

        time_str = time_str.decode('utf-8').replace("\n", "")

        sys_time_resource.setValue("datetime", time_str)

        time_str = subprocess.check_output(["date", "-I", "seconds", "-u"],
                                           shell=True)

        time_str = time_str.decode('utf-8').replace("\n", "")

        sys_time_resource.setValue("datetime_utc", time_str)

        yield from asyncio.sleep(60)
Ejemplo n.º 4
0
def test_occupancy_policy():
    Resource.clearResources()
    device_manager = DeviceManager(max_power_budget=800)

    occupancy_resource = Resource(
        "SomeOccupancyThing", variables=["occupancy"])

    occupancy_resource.setValue("occupancy", True)

    off_policy = OffIfUnoccupied(occupancy_resource.name)

    dev1 = DeviceResource("dev1", power_usage=100,
                          device_manager=device_manager.name,
                          runtime_policy=[off_policy])

    dev1.run()

    device_manager.process_managed_devices()

    assert dev1.running(), "Device should be running"

    occupancy_resource.setValue("occupancy", False)

    assert off_policy.occupancy.value is False

    device_manager.process_managed_devices()

    assert not dev1.running(), "Device should not be running"

    occupancy_resource.setValue("occupancy", True)

    device_manager.process_managed_devices()

    assert not dev1.running(), "Device should not be running"