예제 #1
0
def test_service_worker_added():
    svc = broker.Service()
    assert 0 == svc.available_workers
    svc.add_worker(broker.Worker(b'w1', b's1', time.time(), time.time()))
    assert 1 == svc.available_workers
    svc.add_worker(broker.Worker(b'w2', b's1', time.time(), time.time()))
    assert 2 == svc.available_workers
예제 #2
0
def test_service_request_queued():
    svc = broker.Service()
    assert 0 == svc.queued_requests
    svc.queue_request(b'c1', [b'f1', b'f2'])
    assert 1 == svc.queued_requests
    svc.queue_request(b'c1', [b'f1', b'f2'])
    assert 2 == svc.queued_requests
예제 #3
0
def test_service_request_dequeued():
    message = [b'f1', b'f2']
    worker = broker.Worker(b'w1', b's1', time.time(), time.time())
    client = b'c1'

    svc = broker.Service()
    svc.add_worker(worker)

    dequeued = list(svc.dequeue_pending())
    assert 0 == len(dequeued)

    svc.queue_request(client, message)
    dequeued = list(svc.dequeue_pending())
    assert 1 == len(dequeued)

    assert dequeued[0] == (message, worker, client)
예제 #4
0
def test_service_dequeue_no_requests():
    svc = broker.Service()
    svc.queue_request(b'c1', [b'f1', b'f2'])
    svc.add_worker(broker.Worker(b'w1', b's1', time.time(), time.time()))
    svc.add_worker(broker.Worker(b'w2', b's1', time.time(), time.time()))

    assert 2 == svc.available_workers
    assert 1 == svc.queued_requests

    dequeued = list(svc.dequeue_pending())
    assert 1 == len(dequeued)

    assert 1 == svc.available_workers
    assert 0 == svc.queued_requests

    dequeued = list(svc.dequeue_pending())
    assert 0 == len(dequeued)