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
def test_worker_is_expired(): now = time.time() w = broker.Worker(b'foo', b'bar', now + 5.0, now + 1.0) assert w.is_expired(now) is False assert w.is_expired(now + 4.9) is False assert w.is_expired(now + 10.0) is True assert w.is_expired(now + 5.0) is True
def test_worker_is_heartbeat(): now = time.time() w = broker.Worker(b'foo', b'bar', now + 5.0, now + 1.0) assert w.is_heartbeat(now) is False assert w.is_heartbeat(now + 0.5) is False assert w.is_heartbeat(now + 2.0) is True assert w.is_heartbeat(now + 1.0) is True
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)
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)