예제 #1
0
 def test_getLock(self):
     queue = WishboneQueue()
     queue.put("test")
     queue.getLock()
     try:
         queue.get()
     except QueueLocked:
         pass
     else:
         raise AssertionError ("Queue getLock does not seem to have the desired effect.")
예제 #2
0
    def test_waitUntilFreePlace(self):
        from gevent import spawn, sleep
        def go(queue):
            queue.waitUntilFreePlace()

        queue = WishboneQueue(max_size=1)
        queue.put("test")

        instance=spawn(go, queue)
        sleep()
        assert not instance.ready()

        queue.get()
        sleep()
        assert instance.ready()
예제 #3
0
    def test_stats(self):
        queue = WishboneQueue()

        for _ in xrange(10):
            queue.put("test")

        for _ in xrange(9):
            queue.get()

        stats = queue.stats()

        assert isinstance(stats, dict)
        assert stats["in_total"] == 10
        assert stats["out_total"] == 9
        assert stats["size"] == 1
예제 #4
0
    def test_lock(self):
        queue = WishboneQueue()
        queue.put("test")
        queue.lock()
        try:
            queue.put("test")
        except QueueLocked:
            pass
        else:
            raise AssertionError("Queue lock() not having desired effect.")

        try:
            queue.get()
        except QueueLocked:
            pass
        else:
            raise AssertionError("Queue lock not having desired effect.")

        assert queue.isLocked() == (True, True)
예제 #5
0
 def test_get(self):
     queue = WishboneQueue()
     queue.put("test")
     assert queue.get() == "test"
예제 #6
0
 def test_rescue(self):
     queue = WishboneQueue()
     queue.lock()
     queue.rescue("test")
     queue.unlock()
     assert queue.get() == "test"