示例#1
0
def test_CtrlConn_on_message_cmd_response(mqtt_client, lock, topic):
    def lock_wrapper(func):
        def wrapper(*args, **kwargs):
            ret = func(*args, **kwargs)
            lock.release()
            return ret

        return wrapper

    def sub(func):
        mqtt_client.on_message = lock_wrapper(func)
        return func

    sub.remove_callback = partial(mqtt_client.message_callback_remove, topic)

    mqtt_client.subscribe(topic)
    ctrl = CtrlConn(sub=sub)
    ctrl.da_ready = True
    mqtt_client.publish(topic, '{"state": "ok", "msg_id": "magic"}')

    lock.acquire()
示例#2
0
def test_CtrlConn_on_message_offline(mqtt_client, lock, topic, resource):
    def lock_wrapper(func):
        def wrapper(*args, **kwargs):
            ret = func(*args, **kwargs)
            lock.release()
            return ret

        return wrapper

    def sub(func):
        mqtt_client.on_message = lock_wrapper(func)
        return func

    sub.remove_callback = partial(mqtt_client.message_callback_remove, topic)

    rev = str(resource.revision)

    mqtt_client.subscribe(topic)
    ctrl = CtrlConn(sub=sub, rev=rev)
    ctrl.da_ready = True
    mqtt_client.publish(topic, '{"state": "offline", "rev": "%s"}' % rev)

    lock.acquire()
    assert ctrl.da_ready == False