Пример #1
0
    def testStartErrorHandling(self):

        q = MyQueue()
        q.addTask(waitOneSecond)
        q.addTask(raiseException)
        q.addTask(waitOneSecond)
        q.start()
Пример #2
0
    def testStartComplex(self):
        q = MyQueue()

        q.addTask(waitOneSecond)
        q.addTask(waitFiveSeconds)
        q.addTask(waitOneSecond)
        self.assertEqual(3, q.size())
        self.assertFalse(q.isRunning())
        self.assertEqual(0, q.inFlight())

        q.start()

        time.sleep(0.5)
        self.assertTrue(q.isRunning())
        self.assertEqual(1, q.inFlight())
        self.assertEqual(2, q.size())

        time.sleep(1)
        self.assertEqual(1, q.inFlight())
        self.assertEqual(1, q.size())
        self.assertTrue(q.isRunning())

        time.sleep(5)
        self.assertEqual(1, q.inFlight())
        self.assertEqual(0, q.size())
        self.assertTrue(q.isRunning())

        time.sleep(1)
        self.assertEqual(0, q.inFlight())
        self.assertEqual(0, q.size())
        self.assertFalse(q.isRunning())
Пример #3
0
    def testStartMultipleProcesses(self):
        # test that we can run 3 seconds of tests with 2 procs in about 2 seconds.
        startTime = datetime.now()

        q = MyQueue(2)
        q.addTask(waitOneSecond)
        q.addTask(waitOneSecond)
        q.addTask(waitOneSecond)
        q.start()

        self.sleepCountAssert(startTime, q, 2)
Пример #4
0
    def testStartMultipleStart(self):
        q = MyQueue()
        q.addTask(waitOneSecond)

        startTime = datetime.now()

        q.start()
        q.start()

        # should only take one second, aka the loaded task should not be run twice
        self.sleepCountAssert(startTime, q, 1)
Пример #5
0
    def testStartSimple(self):
        # should be able to run 2 tasks serially in about 2 seconds
        startTime = datetime.now()

        q = MyQueue()
        q.addTask(waitOneSecond)
        q.addTask(waitOneSecond)

        q.addCallback(callbackFunc)

        q.start()

        self.sleepCountAssert(startTime, q, 2)
        # callback function creates this file.  testing for a file existence is an easy way of passing info between multithreaded tasks
        self.assertTrue(os.path.isfile("callback.txt"))
        os.system("rm callback.txt")
Пример #6
0
    def testStartMultipleUse(self):
        q = MyQueue()
        q.addTask(waitOneSecond)
        q.start()

        while q.isRunning():
            time.sleep(0.1)

        self.assertEqual(0, q.size())
        self.assertEqual(0, q.inFlight())
        self.assertFalse(q.isRunning())

        q.addTask(waitOneSecond)

        startTime = datetime.now()
        q.start()

        # it should take about 1 second to run the second task again
        self.sleepCountAssert(startTime, q, 1)
Пример #7
0
 def testStartMoreProcsThanTasks(self):
     q = MyQueue(2)
     q.addTask(waitOneSecond)
     q.start()