Пример #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))
Пример #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))
Пример #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()
Пример #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()
Пример #5
0
 def test_noresize(self):
     q = MultiQueue(num_queues=5)
     self.assertRaises(InvalidQueue, q.put, (6, 1))
Пример #6
0
 def __init__(self):
     self.queue = MultiQueue()
     self.running = True
     self.thread = Thread(name="manager", target=self._manage)
     self.thread.start()