Exemplo n.º 1
0
 def test_normal(self):
     q = MultiQueue()
     q.put((1, 2))
     self.assertEqual(q.get(), (1, 2))
     q.put((2, 4))
     self.assertEqual(q.get(), (2, 4))
     q.put((1, 1))
     self.assertEqual(q.get(), (1, 1))
Exemplo n.º 2
0
    def test_order(self):
        q = MultiQueue(weights=[1, 5, 3])
        for i in xrange(10):
            q.put((0, i))
        for i in xrange(10):
            q.put((1, i))
        for i in xrange(10):
            q.put((2, i))

        # check first in, first out
        self.assertEqual(q.get(), (0, 0))
        self.assertEqual(q.get(), (1, 0))
        self.assertEqual(q.get(), (2, 0))

        # now weights start to affect results
        self.assertEqual(q.get(), (1, 1))
        self.assertEqual(q.get(), (1, 2))
        self.assertEqual(q.get(), (1, 3))
        self.assertEqual(q.get(), (2, 1))
        self.assertEqual(q.get(), (1, 4))
        self.assertEqual(q.get(), (0, 1))
        self.assertEqual(q.get(), (1, 5))
        self.assertEqual(q.get(), (1, 6))
        self.assertEqual(q.get(), (2, 2))
        self.assertEqual(q.get(), (1, 7))
        self.assertEqual(q.get(), (1, 8))
        self.assertEqual(q.get(), (1, 9))

        # no more items from queue 1
        self.assertEqual(q.get(), (2, 3))
        self.assertEqual(q.get(), (0, 2))
        self.assertEqual(q.get(), (2, 4))
        self.assertEqual(q.get(), (0, 3))
        self.assertEqual(q.get(), (2, 5))
        self.assertEqual(q.get(), (2, 6))
        self.assertEqual(q.get(), (0, 4))
        self.assertEqual(q.get(), (2, 7))
        self.assertEqual(q.get(), (2, 8))
        self.assertEqual(q.get(), (0, 5))
        self.assertEqual(q.get(), (2, 9))

        # no more items from queue 2
        self.assertEqual(q.get(), (0, 6))
        self.assertEqual(q.get(), (0, 7))
        self.assertEqual(q.get(), (0, 8))
        self.assertEqual(q.get(), (0, 9))
Exemplo n.º 3
0
    def test_auto_recycle(self):
        # very small value for auto_recycle, don't do this in real code
        q = MultiQueue(weights=[1, 10], auto_recycle=100)

        # fill queues with some data
        q.put((0, 1))
        q.put((1, 1))

        # forces cycle to grow over auto_recycle value
        for i in xrange(20):
            q.put((0, 1))
            q.put((1, 1))
            q.get()
            q.get()

        # extract rest of items
        while not q.empty():
            q.get()
Exemplo n.º 4
0
import Queue

from class_objectProcessorQueue import ObjectProcessorQueue
from multiqueue import MultiQueue

workerQueue = Queue.Queue()
UISignalQueue = Queue.Queue()
addressGeneratorQueue = Queue.Queue()
# receiveDataThreads dump objects they hear on the network into this
# queue to be processed.
objectProcessorQueue = ObjectProcessorQueue()
invQueue = MultiQueue()
addrQueue = MultiQueue()
portCheckerQueue = Queue.Queue()
receiveDataQueue = Queue.Queue()
# The address generator thread uses this queue to get information back
# to the API thread.
apiAddressGeneratorReturnQueue = Queue.Queue()
# Exceptions
excQueue = Queue.Queue()
Exemplo n.º 5
0
 def test_noresize(self):
     q = MultiQueue(num_queues=5)
     self.assertRaises(InvalidQueue, q.put, (6, 1))
Exemplo n.º 6
0
 def __init__(self):
     self.queue = MultiQueue()
     self.running = True
     self.thread = Thread(name="manager", target=self._manage)
     self.thread.start()