Ejemplo n.º 1
0
    def test_get_queue(self):
        client = WebOSClient("ws://b")
        queue = client.send('req', 'uri', {"item": "payload"}, unique_id="1",
                            get_queue=True)
        client.received_message(json.dumps({"id": "1", "test": "test"}))

        assert queue.get(block=True, timeout=1) == dict(id="1", test="test")
Ejemplo n.º 2
0
    def test_multiple_send(self):
        client = WebOSClient("ws://a")
        q1 = client.send('req', None, None, unique_id="1", get_queue=True)
        q2 = client.send('req', None, None, unique_id="2", get_queue=True)

        client.received_message(json.dumps({"id": "2", "test": "test2"}))
        client.received_message(json.dumps({"id": "1", "test": "test1"}))

        assert q1.get(block=True, timeout=1) == {"id": "1", "test": "test1"}
        assert q2.get(block=True, timeout=1) == {"id": "2", "test": "test2"}
Ejemplo n.º 3
0
    def test_send_callback(self):
        obj = {}

        def callback(res):
            obj["res"] = res

        client = WebOSClient("ws://b")
        client.send('req', 'uri', {"item": "payload"}, callback=callback,
                    unique_id="1")
        client.received_message(json.dumps({"id": "1", "test": "test"}))

        assert obj["res"] == dict(id="1", test="test")
Ejemplo n.º 4
0
    def test_clear_waiters(self):
        client = WebOSClient("ws://a")
        q1 = client.send('req', None, None, unique_id="1", get_queue=True,
                         cur_time=lambda: time.time() - 80)
        q2 = client.send('req', None, None, unique_id="2", get_queue=True,
                         cur_time=lambda: time.time() - 20)

        client.received_message(json.dumps({"id": "2", "test": "test2"}))
        client.received_message(json.dumps({"id": "1", "test": "test1"}))

        with raises(Empty):
            assert q1.get(block=True, timeout=1)

        assert q2.get(block=True, timeout=1) == {"id": "2", "test": "test2"}
Ejemplo n.º 5
0
    def test_subscription(self):
        result = []
        result_event = Event()

        def callback(obj):
            result.append(obj)
            result_event.set()

        client = WebOSClient("ws://a")
        uri = client.subscribe('unique_uri', callback)

        client.received_message(json.dumps({"id": uri, "payload": [1]}))
        client.received_message(json.dumps({"id": uri, "payload": [2]}))
        client.received_message(json.dumps({"id": uri, "payload": [3]}))

        result_event.wait()
        assert result == [[1], [2], [3]]

        result = []
        client.unsubscribe(uri)

        client.received_message(json.dumps({"id": uri, "payload": [1]}))
        assert result == []

        with raises(Exception):
            client.unsubscribe(uri)